diff --git a/.env b/.env deleted file mode 100644 index 05f50dc8..00000000 --- a/.env +++ /dev/null @@ -1,4 +0,0 @@ -REACT_APP_NAME=$npm_package_name -REACT_APP_VERSION=$npm_package_version -REACT_APP_LOCAL_STORAGE_TRANSFERS_LOG_KEY=STARKGATE_TRANSFERS -REACT_APP_LOCAL_STORAGE_ACCEPT_TERMS=STARKGATE_ACCEPT_TERMS \ No newline at end of file diff --git a/.env.development b/.env.development deleted file mode 100644 index 19353a42..00000000 --- a/.env.development +++ /dev/null @@ -1,13 +0,0 @@ -REACT_APP_ENV=development -REACT_APP_AUTO_CONNECT=false -# 20 seconds -REACT_APP_POLL_BLOCK_NUMBER_INTERVAL=20000 -# goerli testnet -REACT_APP_SUPPORTED_CHAIN_ID=5 -REACT_APP_STARKNET_CONTRACT_ADDRESS=0xde29d060D45901Fb19ED6C6e959EB22d8626708e -REACT_APP_ETHERSCAN_URL=https://goerli.etherscan.io -REACT_APP_VOYAGER_URL=https://goerli.voyager.online -REACT_APP_STARKSCAN_URL=https://testnet.starkscan.co -REACT_APP_SUPPORTED_TOKENS=ETH,WBTC,USDC,USDT,DAI,SLF -REACT_APP_API_ENDPOINT_URL=http://localhost:3010 -REACT_APP_ENABLE_SCREENING=false diff --git a/.env.goerli b/.env.goerli deleted file mode 100644 index 5f4c0dc0..00000000 --- a/.env.goerli +++ /dev/null @@ -1,12 +0,0 @@ -REACT_APP_ENV=goerli -REACT_APP_AUTO_CONNECT=false -# 20 seconds -REACT_APP_POLL_BLOCK_NUMBER_INTERVAL=20000 -# goerli testnet -REACT_APP_SUPPORTED_CHAIN_ID=5 -REACT_APP_STARKNET_CONTRACT_ADDRESS=0xde29d060D45901Fb19ED6C6e959EB22d8626708e -REACT_APP_ETHERSCAN_URL=https://goerli.etherscan.io -REACT_APP_VOYAGER_URL=https://goerli.voyager.online -REACT_APP_STARKSCAN_URL=https://testnet.starkscan.co -REACT_APP_SUPPORTED_TOKENS=ETH,WBTC,USDC,USDT,DAI -REACT_APP_API_ENDPOINT_URL=//goerli.starkgate.starknet.io/w diff --git a/.env.mainnet b/.env.mainnet deleted file mode 100644 index 8ec87f12..00000000 --- a/.env.mainnet +++ /dev/null @@ -1,12 +0,0 @@ -REACT_APP_ENV=mainnet -REACT_APP_AUTO_CONNECT=false -# 30 seconds -REACT_APP_POLL_BLOCK_NUMBER_INTERVAL=30000 -# mainnet -REACT_APP_SUPPORTED_CHAIN_ID=1 -REACT_APP_STARKNET_CONTRACT_ADDRESS=0xc662c410C0ECf747543f5bA90660f6ABeBD9C8c4 -REACT_APP_ETHERSCAN_URL=https://etherscan.io -REACT_APP_VOYAGER_URL=https://voyager.online -REACT_APP_STARKSCAN_URL=https://starkscan.co -REACT_APP_SUPPORTED_TOKENS=ETH,DAI,WBTC,USDC,USDT -REACT_APP_API_ENDPOINT_URL=//starkgate.starknet.io/w \ No newline at end of file diff --git a/.eslintrc.js b/.eslintrc.js index 23e2aa59..fade61b1 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,80 +1,4 @@ module.exports = { root: true, - env: { - browser: true, - node: true, - amd: true, - es6: true, - es2020: true, - jquery: false - }, - extends: [ - 'eslint:recommended', - 'react-app', - 'plugin:react/recommended', - 'plugin:react-hooks/recommended', - 'plugin:jsx-a11y/recommended' - ], - parser: '@babel/eslint-parser', - parserOptions: { - babelOptions: { - presets: ['@babel/preset-react'] - }, - requireConfigFile: false, - sourceType: 'module' - }, - plugins: ['@babel', 'import', 'react', 'react-hooks', 'jest', 'jsx-a11y', 'prettier'], - settings: { - 'import/core-modules': [], - 'import/ignore': ['node_modules', '\\.(coffee|scss|css|less|hbs|svg|json)$'], - react: { - pragma: 'React', // Pragma to use, default to "React" - version: 'detect' // React version. "detect" automatically picks the version you have installed. - }, - jest: { - // version: require('jest/package.json').version, - } - }, - rules: { - 'no-confusing-arrow': ['error', {allowParens: true}], - 'no-console': 'warn', - 'no-var': 'warn', - 'no-unused-vars': 'error', - 'object-shorthand': 'error', - 'prefer-const': 'warn', - 'prefer-template': 'warn', - 'import/no-anonymous-default-export': 'off', - 'prettier/prettier': 'error', - 'react/react-in-jsx-scope': 'off', - 'react-hooks/rules-of-hooks': 'error', - 'react-hooks/exhaustive-deps': 'off', - quotes: ['error', 'single', {avoidEscape: true}], - 'comma-dangle': [ - 'off', - { - arrays: 'always-multiline', - objects: 'always-multiline', - imports: 'always-multiline', - exports: 'always-multiline', - functions: 'ignore' - } - ], - 'react/jsx-sort-props': [ - 2, - { - callbacksLast: true, - shorthandFirst: true, - reservedFirst: true - } - ], - 'prefer-destructuring': [ - 'warn', - { - object: true, - array: false - } - ], - 'jsx-a11y/click-events-have-key-events': 'off', - 'jsx-a11y/no-static-element-interactions': 'off' - } + extends: ['base'] }; diff --git a/.gitignore b/.gitignore index 03629a48..b0e11f3a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,24 +1,39 @@ # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. # dependencies -/node_modules -/.pnp +node_modules +dist +.pnp .pnp.js # testing -/coverage +coverage -# production -/build +# next.js +.next/ +out/ +build # misc .DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* +.pnpm-debug.log* + +# local env files .env.local .env.development.local .env.test.local .env.production.local -npm-debug.log* -yarn-debug.log* -yarn-error.log* +# turbo +.turbo + +# WebStorm .idea + +.history \ No newline at end of file diff --git a/.npmrc b/.npmrc deleted file mode 100644 index b6f27f13..00000000 --- a/.npmrc +++ /dev/null @@ -1 +0,0 @@ -engine-strict=true diff --git a/.prettierignore b/.prettierignore index ae4d63a5..eeeb7be5 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,3 +1 @@ -build -node_modules -CHANGELOG.md +pnpm-lock.yaml \ No newline at end of file diff --git a/.prettierrc.json b/.prettierrc.json index 09ec78c8..c8317008 100644 --- a/.prettierrc.json +++ b/.prettierrc.json @@ -2,9 +2,7 @@ "arrowParens": "avoid", "bracketSpacing": false, "embeddedLanguageFormatting": "auto", - "htmlWhitespaceSensitivity": "css", "insertPragma": false, - "jsxSingleQuote": false, "printWidth": 100, "proseWrap": "preserve", "quoteProps": "as-needed", @@ -14,7 +12,10 @@ "tabWidth": 2, "trailingComma": "none", "useTabs": false, - "importOrder": ["^[./]"], - "experimentalBabelParserPluginsList": ["jsx"], - "importOrderSeparation": true + "importOrder": ["^@(.*)$", "^[./]"], + "importOrderSeparation": true, + "importOrderSortSpecifiers": true, + "htmlWhitespaceSensitivity": "css", + "jsxSingleQuote": false, + "plugins": ["@trivago/prettier-plugin-sort-imports"] } diff --git a/.stylelintignore b/.stylelintignore deleted file mode 100644 index 796b96d1..00000000 --- a/.stylelintignore +++ /dev/null @@ -1 +0,0 @@ -/build diff --git a/generate-react-cli.json b/generate-react-cli.json deleted file mode 100644 index c0ec499f..00000000 --- a/generate-react-cli.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "usesTypeScript": false, - "usesCssModule": true, - "cssPreprocessor": "scss", - "testLibrary": "None", - "component": { - "default": { - "path": "src/components", - "withStyle": true, - "withTest": false, - "withStory": false, - "withLazy": false - } - } -} diff --git a/package.json b/package.json index 5da00c84..2201c086 100644 --- a/package.json +++ b/package.json @@ -1,123 +1,44 @@ { - "name": "starkgate-frontend", - "version": "1.11.0", - "homepage": "./", + "private": true, + "workspaces": [ + "workspace/apps/**/*", + "workspace/packages/*", + "workspace/tools/*", + "workspace/pipeline/*" + ], "scripts": { - "prebuild": "yarn run clean", - "build": "react-scripts build", - "build:goerli": "GENERATE_SOURCEMAP=false env-cmd -f .env.goerli yarn run build", - "build:mainnet": "GENERATE_SOURCEMAP=false env-cmd -f .env.mainnet yarn run build", - "clean": "rm -rf ./dist", - "eject": "react-scripts eject", - "format": "yarn run -s format:scripts & yarn run -s format:styles & yarn run -s format:prettier", - "format:prettier": "prettier --write **/*.{js,jsx,css,scss,yaml,yml,md}", - "format:scripts": "eslint --fix **/*.{js,jsx}", - "format:styles": "stylelint --fix **/*.{css,scss}", - "lint": "yarn run -s lint:scripts & yarn run -s lint:styles & yarn run -s lint:prettier", - "lint:prettier": "prettier --check **/*.{js,jsx,css,scss}", - "lint:scripts": "eslint **/*.{js,jsx}", - "lint:styles": "stylelint **/*.{css,scss}", - "start": "ESLINT_NO_DEV_ERRORS=true react-scripts start", - "test": "react-scripts test --env=jsdom" - }, - "husky": { - "hooks": { - "pre-commit": "lint-staged" - } - }, - "lint-staged": { - "**/*.{js,jsx}": [ - "prettier --write", - "eslint --fix", - "git add" - ], - "**/*.{css,scss}": [ - "prettier --write", - "stylelint --fix", - "git add" - ] - }, - "browserslist": { - "production": [ - "chrome >= 67", - "edge >= 79", - "firefox >= 68", - "opera >= 54", - "safari >= 14" - ], - "development": [ - "last 1 chrome version", - "last 1 firefox version", - "last 1 safari version" - ] - }, - "dependencies": { - "@emotion/react": "^11.8.2", - "@emotion/styled": "^11.8.1", - "@headlessui/react": "^1.5.0", - "@metamask/onboarding": "^1.0.1", - "@mui/material": "^5.5.3", - "@mui/styles": "^5.5.0", - "@splitbee/web": "^0.3.0", - "@starkware-industries/commons-js-enums": "^1.2.0", - "@starkware-industries/commons-js-hooks": "^1.0.0", - "@starkware-industries/commons-js-utils": "^1.2.0", - "get-starknet": "1.5.0", - "react": "^17.0.2", - "react-dom": "^17.0.2", - "react-hot-toast": "^2.2.0", - "react-router": "^6.3.0", - "react-router-dom": "6", - "react-scripts": "4.0.3", - "starknet": "4.9.0", - "use-breakpoint": "^3.0.1", - "use-deep-compare-effect": "^1.8.1", - "use-wallet": "^0.13.6", - "web3": "^1.8.1" + "prebuild": "turbo run prebuild", + "build": "turbo run build", + "clean": "turbo run clean", + "dev": "turbo run dev --parallel", + "dev:apps": "node ./scripts/dev-apps.js", + "dev:apps:starkgate/web": "pnpm run dev:apps starkgate/web", + "format": "sort-package-json && prettier --write \"**.+(js|json|md|yaml)\" && turbo run format --parallel", + "lint": "turbo run lint", + "npkill": "npkill", + "pack": "turbo run pack", + "pipeline": "pipeline" }, "devDependencies": { - "@babel/cli": "^7.16.0", - "@babel/core": "^7.16.0", - "@babel/eslint-parser": "^7.16.3", - "@babel/eslint-plugin": "^7.14.5", - "@babel/plugin-proposal-class-properties": "^7.16.0", - "@babel/plugin-syntax-flow": "^7.16.0", - "@babel/plugin-transform-react-jsx": "^7.16.0", - "@babel/preset-flow": "^7.16.0", - "@babel/preset-react": "^7.16.0", - "@testing-library/jest-dom": "^5.16.1", - "@testing-library/react": "^11.2.7", - "@testing-library/user-event": "^12.8.3", - "@trivago/prettier-plugin-sort-imports": "^2.0.4", - "env-cmd": "^10.1.0", - "eslint-config-prettier": "^8.3.0", - "eslint-config-react-app": "^6.0.0", - "eslint-plugin-flowtype": "^8.0.3", - "eslint-plugin-import": "^2.22.1", - "eslint-plugin-jest": "^25.3.0", - "eslint-plugin-jsx-a11y": "^6.5.1", - "eslint-plugin-prettier": "^3.4.0", - "eslint-plugin-react": "^7.23.2", - "eslint-plugin-react-hooks": "^4.3.0", - "eslint-plugin-testing-library": "^5.0.1", - "husky": "^7.0.4", - "lint-staged": "^12.1.2", - "node-sass": "^6.0.1", - "postcss": "^8.4.4", - "prettier": "^2.5.1", - "prettier-stylelint": "^0.4.2", - "prop-types": "^15.7.2", - "sass-loader": "^12.1.0", - "stylelint": "^14.1.0", - "stylelint-config-css-modules": "^4.1.0", - "stylelint-config-prettier": "^9.0.3", - "stylelint-config-standard": "^24.0.0", - "stylelint-config-standard-scss": "^3.0.0", - "stylelint-prettier": "^2.0.0", - "stylelint-scss": "^4.0.0" + "@changesets/cli": "^2.26.0", + "@trivago/prettier-plugin-sort-imports": "^4.1.1", + "eslint-config-base": "workspace:*", + "npkill": "^0.10.0", + "prettier": "^2.8.4", + "sort-package-json": "^2.4.1", + "turbo": "1.9.3" }, + "packageManager": "pnpm@8.3.1", "engines": { - "node": ">=16.0.0", - "npm": ">=8.0.0" + "node": ">=16.0.0" + }, + "pnpm": { + "neverBuiltDependencies": [ + "node-hid", + "usb" + ], + "overrides": { + "ethereumjs-abi": "0.6.8" + } } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 00000000..d9fcfc5a --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,13717 @@ +lockfileVersion: '6.1' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +neverBuiltDependencies: + - node-hid + - usb + +overrides: + ethereumjs-abi: 0.6.8 + +importers: + + .: + devDependencies: + '@changesets/cli': + specifier: ^2.26.0 + version: 2.26.0 + '@trivago/prettier-plugin-sort-imports': + specifier: ^4.1.1 + version: 4.1.1(prettier@2.8.4) + eslint-config-base: + specifier: workspace:* + version: link:workspace/tools/eslint-config-base + npkill: + specifier: ^0.10.0 + version: 0.10.0 + prettier: + specifier: ^2.8.4 + version: 2.8.4 + sort-package-json: + specifier: ^2.4.1 + version: 2.4.1 + turbo: + specifier: 1.9.3 + version: 1.9.3 + + workspace/apps/starkgate/shared: + devDependencies: + '@starkware-webapps/enums': + specifier: workspace:* + version: link:../../../packages/enums + '@starkware-webapps/tsconfig': + specifier: workspace:* + version: link:../../../tools/tsconfig + eslint: + specifier: ^8.15.0 + version: 8.34.0 + eslint-config-ts: + specifier: workspace:* + version: link:../../../tools/eslint-config-ts + typedoc: + specifier: ^0.23.10 + version: 0.23.25(typescript@4.9.5) + typedoc-plugin-markdown: + specifier: ^3.13.4 + version: 3.14.0(typedoc@0.23.25) + typescript: + specifier: ^4.7.3 + version: 4.9.5 + vite: + specifier: ^4.1.0 + version: 4.1.2(@types/node@18.15.3) + vite-plugin-dts: + specifier: ^2.0.1 + version: 2.0.1(vite@4.1.2) + + workspace/apps/starkgate/web: + dependencies: + '@emotion/react': + specifier: ^11.8.2 + version: 11.10.5(@babel/core@7.20.12)(@types/react@17.0.53)(react@18.2.0) + '@emotion/styled': + specifier: ^11.8.1 + version: 11.10.5(@babel/core@7.20.12)(@emotion/react@11.10.5)(@types/react@17.0.53)(react@18.2.0) + '@flyyer/use-googlefonts': + specifier: ^0.4.2 + version: 0.4.2(react@18.2.0) + '@headlessui/react': + specifier: ^1.5.0 + version: 1.7.12(react-dom@18.2.0)(react@18.2.0) + '@metamask/onboarding': + specifier: ^1.0.1 + version: 1.0.1 + '@mui/material': + specifier: ^5.5.3 + version: 5.11.9(@emotion/react@11.10.5)(@emotion/styled@11.10.5)(@types/react@17.0.53)(react-dom@18.2.0)(react@18.2.0) + '@mui/styles': + specifier: ^5.5.0 + version: 5.11.9(@types/react@17.0.53)(react@18.2.0) + '@splitbee/web': + specifier: ^0.3.0 + version: 0.3.0 + '@starkgate/shared': + specifier: workspace:* + version: link:../shared + '@starkware-webapps/enums': + specifier: workspace:* + version: link:../../../packages/enums + '@starkware-webapps/http-client': + specifier: workspace:* + version: link:../../../packages/http-client + '@starkware-webapps/js-logger': + specifier: workspace:* + version: link:../../../packages/js-logger + '@starkware-webapps/ui': + specifier: workspace:* + version: link:../../../packages/ui + '@starkware-webapps/utils': + specifier: workspace:* + version: link:../../../packages/utils + '@starkware-webapps/utils-browser': + specifier: workspace:* + version: link:../../../packages/utils-browser + '@starkware-webapps/web3-utils': + specifier: workspace:* + version: link:../../../packages/web3-utils + '@tanstack/react-query': + specifier: ^4.27.0 + version: 4.28.0(react-dom@18.2.0)(react@18.2.0) + '@tanstack/react-query-devtools': + specifier: ^4.27.0 + version: 4.28.0(@tanstack/react-query@4.28.0)(react-dom@18.2.0)(react@18.2.0) + get-starknet: + specifier: ^1.5.0 + version: 1.5.0(starknet@4.22.0) + react: + specifier: ^18.2.0 + version: 18.2.0 + react-dom: + specifier: ^18.2.0 + version: 18.2.0(react@18.2.0) + react-hot-toast: + specifier: ^2.2.0 + version: 2.4.0(csstype@3.1.1)(react-dom@18.2.0)(react@18.2.0) + react-router: + specifier: ^6.3.0 + version: 6.8.2(react@18.2.0) + react-router-dom: + specifier: '6' + version: 6.8.2(react-dom@18.2.0)(react@18.2.0) + starknet: + specifier: ^4.22.0 + version: 4.22.0 + use-breakpoint: + specifier: ^3.0.1 + version: 3.0.7(react-dom@18.2.0)(react@18.2.0) + use-deep-compare-effect: + specifier: ^1.8.1 + version: 1.8.1(react@18.2.0) + use-wallet: + specifier: ^0.13.6 + version: 0.13.6(@babel/core@7.20.12)(@babel/runtime@7.21.5)(eslint@8.34.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5) + web3: + specifier: ^1.8.1 + version: 1.8.2 + devDependencies: + '@babel/core': + specifier: ^7.16.0 + version: 7.20.12 + '@starkware-webapps/tsconfig': + specifier: workspace:* + version: link:../../../tools/tsconfig + '@types/react': + specifier: ^17.0.53 + version: 17.0.53 + '@types/react-dom': + specifier: ^17.0.19 + version: 17.0.19 + '@vitejs/plugin-react': + specifier: ^3.1.0 + version: 3.1.0(vite@4.1.2) + eslint: + specifier: ^8.15.0 + version: 8.34.0 + eslint-config-react-custom: + specifier: workspace:* + version: link:../../../tools/eslint-config-react-custom + postcss: + specifier: ^8.4.21 + version: 8.4.21 + prettier: + specifier: ^2.8.4 + version: 2.8.4 + prop-types: + specifier: ^15.8.1 + version: 15.8.1 + rollup-plugin-re: + specifier: ^1.0.7 + version: 1.0.7 + sass: + specifier: ^1.58.3 + version: 1.58.3 + stylelint: + specifier: ^14.1.0 + version: 14.16.1 + stylelint-config-css-modules: + specifier: ^4.1.0 + version: 4.2.0(stylelint@14.16.1) + stylelint-config-prettier: + specifier: ^9.0.3 + version: 9.0.5(stylelint@14.16.1) + stylelint-config-standard: + specifier: ^24.0.0 + version: 24.0.0(stylelint@14.16.1) + stylelint-config-standard-scss: + specifier: ^3.0.0 + version: 3.0.0(postcss@8.4.21)(stylelint@14.16.1) + stylelint-prettier: + specifier: ^2.0.0 + version: 2.0.0(prettier@2.8.4)(stylelint@14.16.1) + stylelint-scss: + specifier: ^4.0.0 + version: 4.4.0(stylelint@14.16.1) + typescript: + specifier: ^4.7.3 + version: 4.9.5 + vite: + specifier: ^4.1.0 + version: 4.1.2(sass@1.58.3) + vite-plugin-dynamic-import: + specifier: ^1.2.7 + version: 1.2.7 + vite-plugin-html-env: + specifier: ^1.2.7 + version: 1.2.7(vite@4.1.2) + vite-plugin-svgr: + specifier: ^2.4.0 + version: 2.4.0(vite@4.1.2) + + workspace/packages/config: + devDependencies: + '@starkware-webapps/tsconfig': + specifier: workspace:* + version: link:../../tools/tsconfig + eslint: + specifier: ^8.15.0 + version: 8.34.0 + eslint-config-ts: + specifier: workspace:* + version: link:../../tools/eslint-config-ts + typedoc: + specifier: ^0.23.10 + version: 0.23.25(typescript@4.9.5) + typedoc-plugin-markdown: + specifier: ^3.13.4 + version: 3.14.0(typedoc@0.23.25) + typescript: + specifier: ^4.7.3 + version: 4.9.5 + vite: + specifier: ^4.1.0 + version: 4.1.2(@types/node@18.15.3) + vite-plugin-dts: + specifier: ^2.0.1 + version: 2.0.1(vite@4.1.2) + + workspace/packages/enums: + devDependencies: + '@starkware-webapps/tsconfig': + specifier: workspace:* + version: link:../../tools/tsconfig + eslint: + specifier: ^8.15.0 + version: 8.34.0 + eslint-config-ts: + specifier: workspace:* + version: link:../../tools/eslint-config-ts + typedoc: + specifier: ^0.23.10 + version: 0.23.25(typescript@4.9.5) + typedoc-plugin-markdown: + specifier: ^3.13.4 + version: 3.14.0(typedoc@0.23.25) + typescript: + specifier: ^4.7.3 + version: 4.9.5 + vite: + specifier: ^4.1.0 + version: 4.1.2(@types/node@18.15.3) + vite-plugin-dts: + specifier: ^2.0.1 + version: 2.0.1(vite@4.1.2) + + workspace/packages/http-client: + dependencies: + '@starkware-webapps/utils': + specifier: workspace:* + version: link:../utils + axios: + specifier: ^0.26.0 + version: 0.26.1 + devDependencies: + '@starkware-webapps/tsconfig': + specifier: workspace:* + version: link:../../tools/tsconfig + eslint: + specifier: ^8.15.0 + version: 8.34.0 + eslint-config-ts: + specifier: workspace:* + version: link:../../tools/eslint-config-ts + typescript: + specifier: ^4.7.3 + version: 4.9.5 + vite: + specifier: ^4.1.0 + version: 4.1.2(@types/node@18.15.3) + vite-plugin-dts: + specifier: ^2.0.1 + version: 2.0.1(vite@4.1.2) + + workspace/packages/js-logger: + dependencies: + js-logger: + specifier: ^1.6.1 + version: 1.6.1 + devDependencies: + '@starkware-webapps/tsconfig': + specifier: workspace:* + version: link:../../tools/tsconfig + eslint: + specifier: ^8.15.0 + version: 8.34.0 + eslint-config-ts: + specifier: workspace:* + version: link:../../tools/eslint-config-ts + typescript: + specifier: ^4.7.3 + version: 4.9.5 + vite: + specifier: ^4.1.0 + version: 4.1.2(@types/node@18.15.3) + vite-plugin-dts: + specifier: ^2.0.1 + version: 2.0.1(vite@4.1.2) + + workspace/packages/ui: + dependencies: + '@starkware-webapps/config': + specifier: workspace:* + version: link:../config + '@starkware-webapps/enums': + specifier: workspace:* + version: link:../enums + '@starkware-webapps/js-logger': + specifier: workspace:* + version: link:../js-logger + '@starkware-webapps/utils': + specifier: workspace:* + version: link:../utils + '@starkware-webapps/utils-browser': + specifier: workspace:* + version: link:../utils-browser + devDependencies: + '@babel/core': + specifier: ^7.16.0 + version: 7.20.12 + '@emotion/react': + specifier: ^11.8.1 + version: 11.10.5(@babel/core@7.20.12)(@types/react@17.0.53)(react@17.0.2) + '@emotion/styled': + specifier: ^11.8.1 + version: 11.10.5(@babel/core@7.20.12)(@emotion/react@11.10.5)(@types/react@17.0.53)(react@17.0.2) + '@mui/material': + specifier: ^5.5.0 + version: 5.11.9(@emotion/react@11.10.5)(@emotion/styled@11.10.5)(@types/react@17.0.53)(react-dom@17.0.2)(react@17.0.2) + '@mui/styles': + specifier: ^5.5.0 + version: 5.11.9(@types/react@17.0.53)(react@17.0.2) + '@starkware-webapps/tsconfig': + specifier: workspace:* + version: link:../../tools/tsconfig + '@types/react': + specifier: ^17.0.53 + version: 17.0.53 + '@types/react-dom': + specifier: ^17.0.19 + version: 17.0.19 + '@vitejs/plugin-react': + specifier: ^3.1.0 + version: 3.1.0(vite@4.1.2) + eslint: + specifier: ^8.15.0 + version: 8.34.0 + eslint-config-react-custom: + specifier: workspace:* + version: link:../../tools/eslint-config-react-custom + postcss: + specifier: ^8.4.21 + version: 8.4.21 + prettier: + specifier: ^2.8.4 + version: 2.8.4 + prop-types: + specifier: ^15.8.1 + version: 15.8.1 + react: + specifier: ^17.0.2 + version: 17.0.2 + react-dom: + specifier: ^17.0.2 + version: 17.0.2(react@17.0.2) + sass: + specifier: ^1.58.3 + version: 1.58.3 + starknet: + specifier: ^4.9.0 + version: 4.17.1 + stylelint: + specifier: ^14.1.0 + version: 14.16.1 + stylelint-config-css-modules: + specifier: ^4.1.0 + version: 4.2.0(stylelint@14.16.1) + stylelint-config-prettier: + specifier: ^9.0.3 + version: 9.0.5(stylelint@14.16.1) + stylelint-config-standard: + specifier: ^24.0.0 + version: 24.0.0(stylelint@14.16.1) + stylelint-config-standard-scss: + specifier: ^3.0.0 + version: 3.0.0(postcss@8.4.21)(stylelint@14.16.1) + stylelint-prettier: + specifier: ^2.0.0 + version: 2.0.0(prettier@2.8.4)(stylelint@14.16.1) + stylelint-scss: + specifier: ^4.0.0 + version: 4.4.0(stylelint@14.16.1) + typescript: + specifier: ^4.7.3 + version: 4.9.5 + vite: + specifier: ^4.1.0 + version: 4.1.2(sass@1.58.3) + vite-plugin-dts: + specifier: ^1.7.3 + version: 1.7.3(vite@4.1.2) + vite-plugin-svgr: + specifier: ^2.4.0 + version: 2.4.0(vite@4.1.2) + web3-eth-contract: + specifier: ^1.8.1 + version: 1.8.2 + web3-utils: + specifier: ^1.8.1 + version: 1.8.2 + + workspace/packages/utils: + dependencies: + '@starkware-webapps/enums': + specifier: workspace:* + version: link:../enums + uuid: + specifier: ^8.3.2 + version: 8.3.2 + devDependencies: + '@starkware-webapps/tsconfig': + specifier: workspace:* + version: link:../../tools/tsconfig + '@types/express': + specifier: ^4.17.17 + version: 4.17.17 + '@types/node': + specifier: ^18.13.0 + version: 18.13.0 + '@types/uuid': + specifier: ^8.3.4 + version: 8.3.4 + eslint: + specifier: ^8.15.0 + version: 8.34.0 + eslint-config-ts: + specifier: workspace:* + version: link:../../tools/eslint-config-ts + typedoc: + specifier: ^0.23.10 + version: 0.23.25(typescript@4.9.5) + typedoc-plugin-markdown: + specifier: ^3.13.4 + version: 3.14.0(typedoc@0.23.25) + typescript: + specifier: ^4.7.3 + version: 4.9.5 + vite: + specifier: ^4.1.0 + version: 4.1.2(@types/node@18.13.0) + vite-plugin-dts: + specifier: ^2.0.1 + version: 2.0.1(@types/node@18.13.0)(vite@4.1.2) + + workspace/packages/utils-browser: + dependencies: + '@starkware-webapps/enums': + specifier: workspace:* + version: link:../enums + '@starkware-webapps/utils': + specifier: workspace:* + version: link:../utils + ua-parser-js: + specifier: ^1.0.35 + version: 1.0.35 + devDependencies: + '@starkware-webapps/tsconfig': + specifier: workspace:* + version: link:../../tools/tsconfig + '@types/express': + specifier: ^4.17.17 + version: 4.17.17 + '@types/node': + specifier: ^18.13.0 + version: 18.15.3 + '@types/ua-parser-js': + specifier: ^0.7.36 + version: 0.7.36 + eslint: + specifier: ^8.15.0 + version: 8.34.0 + eslint-config-ts: + specifier: workspace:* + version: link:../../tools/eslint-config-ts + typedoc: + specifier: ^0.23.10 + version: 0.23.25(typescript@4.9.5) + typedoc-plugin-markdown: + specifier: ^3.13.4 + version: 3.14.0(typedoc@0.23.25) + typescript: + specifier: ^4.7.3 + version: 4.9.5 + vite: + specifier: ^4.1.0 + version: 4.1.2(@types/node@18.15.3) + vite-plugin-dts: + specifier: ^2.0.1 + version: 2.3.0(@types/node@18.15.3)(vite@4.1.2) + + workspace/packages/web3-utils: + dependencies: + '@normalizex/ethjs-unit': + specifier: ^0.1.8 + version: 0.1.8 + '@starkware-industries/starkware-crypto-utils': + specifier: ^0.0.2 + version: 0.0.2 + devDependencies: + '@starkware-webapps/enums': + specifier: workspace:* + version: link:../enums + '@starkware-webapps/tsconfig': + specifier: workspace:* + version: link:../../tools/tsconfig + '@starkware-webapps/utils': + specifier: workspace:* + version: link:../utils + eslint: + specifier: ^8.15.0 + version: 8.34.0 + eslint-config-ts: + specifier: workspace:* + version: link:../../tools/eslint-config-ts + starknet: + specifier: ^4.9.0 + version: 4.17.1 + typedoc: + specifier: ^0.23.10 + version: 0.23.25(typescript@4.9.5) + typedoc-plugin-markdown: + specifier: ^3.13.4 + version: 3.14.0(typedoc@0.23.25) + typescript: + specifier: ^4.7.3 + version: 4.9.5 + vite: + specifier: ^4.1.0 + version: 4.1.2(@types/node@18.15.3) + vite-plugin-dts: + specifier: ^2.0.1 + version: 2.0.1(vite@4.1.2) + web3: + specifier: ^1.8.1 + version: 1.8.2 + web3-eth-contract: + specifier: ^1.8.1 + version: 1.8.2 + web3-utils: + specifier: ^1.8.1 + version: 1.8.2 + + workspace/tools/eslint-config-base: + devDependencies: + eslint: + specifier: ^8.15.0 + version: 8.34.0 + eslint-config-prettier: + specifier: ^8.3.0 + version: 8.6.0(eslint@8.34.0) + eslint-config-turbo: + specifier: latest + version: 1.10.3(eslint@8.34.0) + eslint-plugin-prettier: + specifier: ^4.2.1 + version: 4.2.1(eslint-config-prettier@8.6.0)(eslint@8.34.0)(prettier@2.8.4) + + workspace/tools/eslint-config-react-custom: + devDependencies: + eslint: + specifier: ^8.15.0 + version: 8.34.0 + eslint-config-ts: + specifier: workspace:* + version: link:../eslint-config-ts + eslint-plugin-react: + specifier: ^7.32.2 + version: 7.32.2(eslint@8.34.0) + eslint-plugin-react-hooks: + specifier: ^4.6.0 + version: 4.6.0(eslint@8.34.0) + + workspace/tools/eslint-config-ts: + devDependencies: + '@typescript-eslint/eslint-plugin': + specifier: ^5.52.0 + version: 5.52.0(@typescript-eslint/parser@5.52.0)(eslint@8.34.0)(typescript@4.9.5) + '@typescript-eslint/parser': + specifier: ^5.52.0 + version: 5.52.0(eslint@8.34.0)(typescript@4.9.5) + eslint: + specifier: ^8.15.0 + version: 8.34.0 + eslint-config-base: + specifier: workspace:* + version: link:../eslint-config-base + eslint-import-resolver-typescript: + specifier: ^3.5.3 + version: 3.5.3(eslint-plugin-import@2.27.5)(eslint@8.34.0) + eslint-plugin-import: + specifier: ^2.27.5 + version: 2.27.5(@typescript-eslint/parser@5.52.0)(eslint-import-resolver-typescript@3.5.3)(eslint@8.34.0) + typescript: + specifier: ^4.9.5 + version: 4.9.5 + + workspace/tools/tsconfig: + devDependencies: + '@types/mocha': + specifier: ^10.0.1 + version: 10.0.1 + '@types/node': + specifier: ^18.14.1 + version: 18.14.2 + +packages: + + /@0x/assert@2.1.6: + resolution: {integrity: sha512-Gu8eBnFdEuIAH2GubWYOSVz/BIoRccKof68AziduYDHxh4nSPM6NUH52xtfUGk4nXljiOXU1XHZJhcjTObI+8Q==} + engines: {node: '>=6.12'} + dependencies: + '@0x/json-schemas': 4.0.2 + '@0x/typescript-typings': 4.3.0 + '@0x/utils': 4.5.2 + lodash: 4.17.21 + valid-url: 1.0.9 + dev: false + + /@0x/json-schemas@4.0.2: + resolution: {integrity: sha512-JHOwESZeWKAzT5Z42ZNvOvQUQ5vuRIFQWS0FNjYwV8Cv4/dRlLHd7kwxxsvlm9NxgXnOW0ddEDBbVGxhVSYNIg==} + engines: {node: '>=6.12'} + dependencies: + '@0x/typescript-typings': 4.3.0 + '@types/node': 18.15.3 + jsonschema: 1.4.1 + lodash.values: 4.3.0 + dev: false + + /@0x/subproviders@5.0.4: + resolution: {integrity: sha512-1LiGcOXkP5eUOl/0JRqkrqYtCvIL4NJj1GbbLIRq4TvkfqrRbF7zJM2SaayxPo3Z48zVsqk0ZE5+RrNAdK/Rrg==} + engines: {node: '>=6.12'} + dependencies: + '@0x/assert': 2.1.6 + '@0x/types': 2.4.3 + '@0x/typescript-typings': 4.3.0 + '@0x/utils': 4.5.2 + '@0x/web3-wrapper': 6.0.13 + '@ledgerhq/hw-app-eth': 4.78.0 + '@ledgerhq/hw-transport-u2f': 4.24.0 + '@types/hdkey': 0.7.1 + '@types/web3-provider-engine': 14.0.1 + bip39: 2.6.0 + bn.js: 4.12.0 + ethereum-types: 2.1.6 + ethereumjs-tx: 1.3.7 + ethereumjs-util: 5.2.0 + ganache-core: 2.13.2 + hdkey: 0.7.1 + json-rpc-error: 2.0.0 + lodash: 4.17.21 + semaphore-async-await: 1.5.1 + web3-provider-engine: 14.0.6 + optionalDependencies: + '@ledgerhq/hw-transport-node-hid': 4.78.0 + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate + dev: false + + /@0x/types@2.4.3: + resolution: {integrity: sha512-3z4ca9fb9pyTu9lJhTSll5EuEthkA3tLAayyZixCoCnwi4ok6PJ83PnMMsSxlRY2iXr7QGbrQr6nU64YWk2WjA==} + engines: {node: '>=6.12'} + dependencies: + '@types/node': 18.15.3 + bignumber.js: 8.0.2 + ethereum-types: 2.1.6 + dev: false + + /@0x/typescript-typings@4.3.0: + resolution: {integrity: sha512-6IH2JyKyl33+40tJ5rEhaMPTS2mVuRvoNmoXlCd/F0GPYSsDHMGObIXOkx+Qsw5SyCmqNs/3CTLeeCCqiSUdaw==} + engines: {node: '>=6.12'} + dependencies: + '@types/bn.js': 4.11.6 + '@types/react': 18.2.6 + bignumber.js: 8.0.2 + ethereum-types: 2.1.6 + popper.js: 1.14.3 + dev: false + + /@0x/utils@4.5.2: + resolution: {integrity: sha512-NWfNcvyiOhouk662AWxX0ZVe4ednBZJS9WZT/by3DBCY/WvN7WHMpEy9M5rBCxO+JJndLYeB5eBztDp7W+Ytkw==} + engines: {node: '>=6.12'} + dependencies: + '@0x/types': 2.4.3 + '@0x/typescript-typings': 4.3.0 + '@types/node': 18.15.3 + abortcontroller-polyfill: 1.7.5 + bignumber.js: 8.0.2 + chalk: 2.4.2 + detect-node: 2.0.3 + ethereum-types: 2.1.6 + ethereumjs-util: 5.2.0 + ethers: 4.0.49 + isomorphic-fetch: 2.2.1 + js-sha3: 0.7.0 + lodash: 4.17.21 + dev: false + + /@0x/web3-wrapper@6.0.13: + resolution: {integrity: sha512-LQjKBCCNdkJuhcJld+/sy+G0+sJu5qp9VDNNwJGLDxWIJpgoshhUpBPi7vUnZ79UY4SYuNcC4yM9yI61cs7ZiA==} + engines: {node: '>=6.12'} + dependencies: + '@0x/assert': 2.1.6 + '@0x/json-schemas': 4.0.2 + '@0x/typescript-typings': 4.3.0 + '@0x/utils': 4.5.2 + ethereum-types: 2.1.6 + ethereumjs-util: 5.2.0 + ethers: 4.0.49 + lodash: 4.17.21 + dev: false + + /@ampproject/remapping@2.2.0: + resolution: {integrity: sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/gen-mapping': 0.1.1 + '@jridgewell/trace-mapping': 0.3.17 + + /@aragon/provided-connector@6.0.8: + resolution: {integrity: sha512-O7dPXPPwOulkF5Nc04nTEBQPtDmySRPtZW0SYQlX0CwjSAntfdyLjFr6T3bNFFqLCBKfDoW6Hc02fN+rClQGIg==} + dependencies: + '@web3-react/abstract-connector': 6.0.7 + '@web3-react/types': 6.0.7 + tiny-warning: 1.0.3 + dev: false + + /@babel/code-frame@7.18.6: + resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.18.6 + + /@babel/code-frame@7.21.4: + resolution: {integrity: sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.18.6 + + /@babel/compat-data@7.20.14: + resolution: {integrity: sha512-0YpKHD6ImkWMEINCyDAD0HLLUH/lPCefG8ld9it8DJB2wnApraKuhgYTvTY1z7UFIfBTGy5LwncZ+5HWWGbhFw==} + engines: {node: '>=6.9.0'} + + /@babel/compat-data@7.21.9: + resolution: {integrity: sha512-FUGed8kfhyWvbYug/Un/VPJD41rDIgoVVcR+FuzhzOYyRz5uED+Gd3SLZml0Uw2l2aHFb7ZgdW5mGA3G2cCCnQ==} + engines: {node: '>=6.9.0'} + + /@babel/core@7.20.12: + resolution: {integrity: sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==} + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.2.0 + '@babel/code-frame': 7.18.6 + '@babel/generator': 7.20.14 + '@babel/helper-compilation-targets': 7.20.7(@babel/core@7.20.12) + '@babel/helper-module-transforms': 7.20.11 + '@babel/helpers': 7.20.13 + '@babel/parser': 7.21.4 + '@babel/template': 7.20.7 + '@babel/traverse': 7.20.13 + '@babel/types': 7.21.4 + convert-source-map: 1.9.0 + debug: 4.3.4 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + + /@babel/core@7.21.8: + resolution: {integrity: sha512-YeM22Sondbo523Sz0+CirSPnbj9bG3P0CdHcBZdqUuaeOaYEFbOLoGU7lebvGP6P5J/WE9wOn7u7C4J9HvS1xQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.2.0 + '@babel/code-frame': 7.21.4 + '@babel/generator': 7.21.9 + '@babel/helper-compilation-targets': 7.21.5(@babel/core@7.21.8) + '@babel/helper-module-transforms': 7.21.5 + '@babel/helpers': 7.21.5 + '@babel/parser': 7.21.9 + '@babel/template': 7.20.7 + '@babel/traverse': 7.21.5 + '@babel/types': 7.21.5 + convert-source-map: 1.9.0 + debug: 4.3.4 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/generator@7.17.7: + resolution: {integrity: sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.21.5 + jsesc: 2.5.2 + source-map: 0.5.7 + dev: true + + /@babel/generator@7.20.14: + resolution: {integrity: sha512-AEmuXHdcD3A52HHXxaTmYlb8q/xMEhoRP67B3T4Oq7lbmSoqroMZzjnGj3+i1io3pdnF8iBYVu4Ilj+c4hBxYg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.21.5 + '@jridgewell/gen-mapping': 0.3.2 + jsesc: 2.5.2 + + /@babel/generator@7.21.9: + resolution: {integrity: sha512-F3fZga2uv09wFdEjEQIJxXALXfz0+JaOb7SabvVMmjHxeVTuGW8wgE8Vp1Hd7O+zMTYtcfEISGRzPkeiaPPsvg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.21.5 + '@jridgewell/gen-mapping': 0.3.2 + '@jridgewell/trace-mapping': 0.3.17 + jsesc: 2.5.2 + + /@babel/helper-compilation-targets@7.20.7(@babel/core@7.20.12): + resolution: {integrity: sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/compat-data': 7.20.14 + '@babel/core': 7.20.12 + '@babel/helper-validator-option': 7.18.6 + browserslist: 4.21.5 + lru-cache: 5.1.1 + semver: 6.3.0 + + /@babel/helper-compilation-targets@7.21.5(@babel/core@7.20.12): + resolution: {integrity: sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/compat-data': 7.21.9 + '@babel/core': 7.20.12 + '@babel/helper-validator-option': 7.21.0 + browserslist: 4.21.5 + lru-cache: 5.1.1 + semver: 6.3.0 + dev: false + + /@babel/helper-compilation-targets@7.21.5(@babel/core@7.21.8): + resolution: {integrity: sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/compat-data': 7.21.9 + '@babel/core': 7.21.8 + '@babel/helper-validator-option': 7.21.0 + browserslist: 4.21.5 + lru-cache: 5.1.1 + semver: 6.3.0 + dev: true + + /@babel/helper-define-polyfill-provider@0.3.3(@babel/core@7.20.12): + resolution: {integrity: sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==} + peerDependencies: + '@babel/core': ^7.4.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-compilation-targets': 7.21.5(@babel/core@7.20.12) + '@babel/helper-plugin-utils': 7.20.2 + debug: 4.3.4 + lodash.debounce: 4.0.8 + resolve: 1.22.1 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: false + + /@babel/helper-environment-visitor@7.18.9: + resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==} + engines: {node: '>=6.9.0'} + + /@babel/helper-environment-visitor@7.21.5: + resolution: {integrity: sha512-IYl4gZ3ETsWocUWgsFZLM5i1BYx9SoemminVEXadgLBa9TdeorzgLKm8wWLA6J1N/kT3Kch8XIk1laNzYoHKvQ==} + engines: {node: '>=6.9.0'} + + /@babel/helper-function-name@7.19.0: + resolution: {integrity: sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.20.7 + '@babel/types': 7.21.5 + + /@babel/helper-function-name@7.21.0: + resolution: {integrity: sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.20.7 + '@babel/types': 7.21.5 + + /@babel/helper-hoist-variables@7.18.6: + resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.21.5 + + /@babel/helper-module-imports@7.18.6: + resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.21.5 + + /@babel/helper-module-imports@7.21.4: + resolution: {integrity: sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.21.5 + + /@babel/helper-module-transforms@7.20.11: + resolution: {integrity: sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-module-imports': 7.18.6 + '@babel/helper-simple-access': 7.20.2 + '@babel/helper-split-export-declaration': 7.18.6 + '@babel/helper-validator-identifier': 7.19.1 + '@babel/template': 7.20.7 + '@babel/traverse': 7.21.5 + '@babel/types': 7.21.5 + transitivePeerDependencies: + - supports-color + + /@babel/helper-module-transforms@7.21.5: + resolution: {integrity: sha512-bI2Z9zBGY2q5yMHoBvJ2a9iX3ZOAzJPm7Q8Yz6YeoUjU/Cvhmi2G4QyTNyPBqqXSgTjUxRg3L0xV45HvkNWWBw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-environment-visitor': 7.21.5 + '@babel/helper-module-imports': 7.21.4 + '@babel/helper-simple-access': 7.21.5 + '@babel/helper-split-export-declaration': 7.18.6 + '@babel/helper-validator-identifier': 7.19.1 + '@babel/template': 7.20.7 + '@babel/traverse': 7.21.5 + '@babel/types': 7.21.5 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-plugin-utils@7.20.2: + resolution: {integrity: sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==} + engines: {node: '>=6.9.0'} + + /@babel/helper-simple-access@7.20.2: + resolution: {integrity: sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.21.5 + + /@babel/helper-simple-access@7.21.5: + resolution: {integrity: sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.21.5 + dev: true + + /@babel/helper-split-export-declaration@7.18.6: + resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.21.5 + + /@babel/helper-string-parser@7.19.4: + resolution: {integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==} + engines: {node: '>=6.9.0'} + + /@babel/helper-string-parser@7.21.5: + resolution: {integrity: sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w==} + engines: {node: '>=6.9.0'} + + /@babel/helper-validator-identifier@7.19.1: + resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} + engines: {node: '>=6.9.0'} + + /@babel/helper-validator-option@7.18.6: + resolution: {integrity: sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==} + engines: {node: '>=6.9.0'} + + /@babel/helper-validator-option@7.21.0: + resolution: {integrity: sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==} + engines: {node: '>=6.9.0'} + + /@babel/helpers@7.20.13: + resolution: {integrity: sha512-nzJ0DWCL3gB5RCXbUO3KIMMsBY2Eqbx8mBpKGE/02PgyRQFcPQLbkQ1vyy596mZLaP+dAfD+R4ckASzNVmW3jg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.20.7 + '@babel/traverse': 7.21.5 + '@babel/types': 7.21.5 + transitivePeerDependencies: + - supports-color + + /@babel/helpers@7.21.5: + resolution: {integrity: sha512-BSY+JSlHxOmGsPTydUkPf1MdMQ3M81x5xGCOVgWM3G8XH77sJ292Y2oqcp0CbbgxhqBuI46iUz1tT7hqP7EfgA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.20.7 + '@babel/traverse': 7.21.5 + '@babel/types': 7.21.5 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/highlight@7.18.6: + resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.19.1 + chalk: 2.4.2 + js-tokens: 4.0.0 + + /@babel/parser@7.20.15: + resolution: {integrity: sha512-DI4a1oZuf8wC+oAJA9RW6ga3Zbe8RZFt7kD9i4qAspz3I/yHet1VvC3DiSy/fsUvv5pvJuNPh0LPOdCcqinDPg==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.21.5 + dev: true + + /@babel/parser@7.21.4: + resolution: {integrity: sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.21.5 + + /@babel/parser@7.21.9: + resolution: {integrity: sha512-q5PNg/Bi1OpGgx5jYlvWZwAorZepEudDMCLtj967aeS7WMont7dUZI46M2XwcIQqvUlMxWfdLFu4S/qSxeUu5g==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.21.5 + + /@babel/plugin-syntax-jsx@7.18.6(@babel/core@7.20.12): + resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-plugin-utils': 7.20.2 + + /@babel/plugin-transform-react-jsx-self@7.18.6(@babel/core@7.20.12): + resolution: {integrity: sha512-A0LQGx4+4Jv7u/tWzoJF7alZwnBDQd6cGLh9P+Ttk4dpiL+J5p7NSNv/9tlEFFJDq3kjxOavWmbm6t0Gk+A3Ig==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-react-jsx-source@7.19.6(@babel/core@7.20.12): + resolution: {integrity: sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-runtime@7.21.0(@babel/core@7.20.12): + resolution: {integrity: sha512-ReY6pxwSzEU0b3r2/T/VhqMKg/AkceBT19X0UptA3/tYi5Pe2eXgEUH+NNMC5nok6c6XQz5tyVTUpuezRfSMSg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-module-imports': 7.21.4 + '@babel/helper-plugin-utils': 7.20.2 + babel-plugin-polyfill-corejs2: 0.3.3(@babel/core@7.20.12) + babel-plugin-polyfill-corejs3: 0.6.0(@babel/core@7.20.12) + babel-plugin-polyfill-regenerator: 0.4.1(@babel/core@7.20.12) + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: false + + /@babel/runtime@7.20.13: + resolution: {integrity: sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.13.11 + + /@babel/runtime@7.21.5: + resolution: {integrity: sha512-8jI69toZqqcsnqGGqwGS4Qb1VwLOEp4hz+CXPywcvjs60u3B4Pom/U/7rm4W8tMOYEB+E9wgD0mW1l3r8qlI9Q==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.13.11 + + /@babel/runtime@7.3.4: + resolution: {integrity: sha512-IvfvnMdSaLBateu0jfsYIpZTxAc2cKEXEMiezGGN75QcBcecDUKd3PgLAncT0oOgxKy8dd8hrJKj9MfzgfZd6g==} + dependencies: + regenerator-runtime: 0.12.1 + dev: false + + /@babel/template@7.20.7: + resolution: {integrity: sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.21.4 + '@babel/parser': 7.21.9 + '@babel/types': 7.21.5 + + /@babel/traverse@7.17.3: + resolution: {integrity: sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.21.4 + '@babel/generator': 7.21.9 + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-function-name': 7.19.0 + '@babel/helper-hoist-variables': 7.18.6 + '@babel/helper-split-export-declaration': 7.18.6 + '@babel/parser': 7.21.9 + '@babel/types': 7.21.5 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/traverse@7.20.13: + resolution: {integrity: sha512-kMJXfF0T6DIS9E8cgdLCSAL+cuCK+YEZHWiLK0SXpTo8YRj5lpJu3CDNKiIBCne4m9hhTIqUg6SYTAI39tAiVQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.21.4 + '@babel/generator': 7.21.9 + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-function-name': 7.19.0 + '@babel/helper-hoist-variables': 7.18.6 + '@babel/helper-split-export-declaration': 7.18.6 + '@babel/parser': 7.21.9 + '@babel/types': 7.21.5 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + + /@babel/traverse@7.21.5: + resolution: {integrity: sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.21.4 + '@babel/generator': 7.21.9 + '@babel/helper-environment-visitor': 7.21.5 + '@babel/helper-function-name': 7.21.0 + '@babel/helper-hoist-variables': 7.18.6 + '@babel/helper-split-export-declaration': 7.18.6 + '@babel/parser': 7.21.9 + '@babel/types': 7.21.5 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + + /@babel/types@7.17.0: + resolution: {integrity: sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.19.1 + to-fast-properties: 2.0.0 + dev: true + + /@babel/types@7.21.4: + resolution: {integrity: sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.19.4 + '@babel/helper-validator-identifier': 7.19.1 + to-fast-properties: 2.0.0 + + /@babel/types@7.21.5: + resolution: {integrity: sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.21.5 + '@babel/helper-validator-identifier': 7.19.1 + to-fast-properties: 2.0.0 + + /@changesets/apply-release-plan@6.1.3: + resolution: {integrity: sha512-ECDNeoc3nfeAe1jqJb5aFQX7CqzQhD2klXRez2JDb/aVpGUbX673HgKrnrgJRuQR/9f2TtLoYIzrGB9qwD77mg==} + dependencies: + '@babel/runtime': 7.20.13 + '@changesets/config': 2.3.0 + '@changesets/get-version-range-type': 0.3.2 + '@changesets/git': 2.0.0 + '@changesets/types': 5.2.1 + '@manypkg/get-packages': 1.1.3 + detect-indent: 6.1.0 + fs-extra: 7.0.1 + lodash.startcase: 4.4.0 + outdent: 0.5.0 + prettier: 2.8.4 + resolve-from: 5.0.0 + semver: 5.7.1 + dev: true + + /@changesets/assemble-release-plan@5.2.3: + resolution: {integrity: sha512-g7EVZCmnWz3zMBAdrcKhid4hkHT+Ft1n0mLussFMcB1dE2zCuwcvGoy9ec3yOgPGF4hoMtgHaMIk3T3TBdvU9g==} + dependencies: + '@babel/runtime': 7.20.13 + '@changesets/errors': 0.1.4 + '@changesets/get-dependents-graph': 1.3.5 + '@changesets/types': 5.2.1 + '@manypkg/get-packages': 1.1.3 + semver: 5.7.1 + dev: true + + /@changesets/changelog-git@0.1.14: + resolution: {integrity: sha512-+vRfnKtXVWsDDxGctOfzJsPhaCdXRYoe+KyWYoq5X/GqoISREiat0l3L8B0a453B2B4dfHGcZaGyowHbp9BSaA==} + dependencies: + '@changesets/types': 5.2.1 + dev: true + + /@changesets/cli@2.26.0: + resolution: {integrity: sha512-0cbTiDms+ICTVtEwAFLNW0jBNex9f5+fFv3I771nBvdnV/mOjd1QJ4+f8KtVSOrwD9SJkk9xbDkWFb0oXd8d1Q==} + hasBin: true + dependencies: + '@babel/runtime': 7.20.13 + '@changesets/apply-release-plan': 6.1.3 + '@changesets/assemble-release-plan': 5.2.3 + '@changesets/changelog-git': 0.1.14 + '@changesets/config': 2.3.0 + '@changesets/errors': 0.1.4 + '@changesets/get-dependents-graph': 1.3.5 + '@changesets/get-release-plan': 3.0.16 + '@changesets/git': 2.0.0 + '@changesets/logger': 0.0.5 + '@changesets/pre': 1.0.14 + '@changesets/read': 0.5.9 + '@changesets/types': 5.2.1 + '@changesets/write': 0.2.3 + '@manypkg/get-packages': 1.1.3 + '@types/is-ci': 3.0.0 + '@types/semver': 6.2.3 + ansi-colors: 4.1.3 + chalk: 2.4.2 + enquirer: 2.3.6 + external-editor: 3.1.0 + fs-extra: 7.0.1 + human-id: 1.0.2 + is-ci: 3.0.1 + meow: 6.1.1 + outdent: 0.5.0 + p-limit: 2.3.0 + preferred-pm: 3.0.3 + resolve-from: 5.0.0 + semver: 5.7.1 + spawndamnit: 2.0.0 + term-size: 2.2.1 + tty-table: 4.1.6 + dev: true + + /@changesets/config@2.3.0: + resolution: {integrity: sha512-EgP/px6mhCx8QeaMAvWtRrgyxW08k/Bx2tpGT+M84jEdX37v3VKfh4Cz1BkwrYKuMV2HZKeHOh8sHvja/HcXfQ==} + dependencies: + '@changesets/errors': 0.1.4 + '@changesets/get-dependents-graph': 1.3.5 + '@changesets/logger': 0.0.5 + '@changesets/types': 5.2.1 + '@manypkg/get-packages': 1.1.3 + fs-extra: 7.0.1 + micromatch: 4.0.5 + dev: true + + /@changesets/errors@0.1.4: + resolution: {integrity: sha512-HAcqPF7snsUJ/QzkWoKfRfXushHTu+K5KZLJWPb34s4eCZShIf8BFO3fwq6KU8+G7L5KdtN2BzQAXOSXEyiY9Q==} + dependencies: + extendable-error: 0.1.7 + dev: true + + /@changesets/get-dependents-graph@1.3.5: + resolution: {integrity: sha512-w1eEvnWlbVDIY8mWXqWuYE9oKhvIaBhzqzo4ITSJY9hgoqQ3RoBqwlcAzg11qHxv/b8ReDWnMrpjpKrW6m1ZTA==} + dependencies: + '@changesets/types': 5.2.1 + '@manypkg/get-packages': 1.1.3 + chalk: 2.4.2 + fs-extra: 7.0.1 + semver: 5.7.1 + dev: true + + /@changesets/get-release-plan@3.0.16: + resolution: {integrity: sha512-OpP9QILpBp1bY2YNIKFzwigKh7Qe9KizRsZomzLe6pK8IUo8onkAAVUD8+JRKSr8R7d4+JRuQrfSSNlEwKyPYg==} + dependencies: + '@babel/runtime': 7.21.5 + '@changesets/assemble-release-plan': 5.2.3 + '@changesets/config': 2.3.0 + '@changesets/pre': 1.0.14 + '@changesets/read': 0.5.9 + '@changesets/types': 5.2.1 + '@manypkg/get-packages': 1.1.3 + dev: true + + /@changesets/get-version-range-type@0.3.2: + resolution: {integrity: sha512-SVqwYs5pULYjYT4op21F2pVbcrca4qA/bAA3FmFXKMN7Y+HcO8sbZUTx3TAy2VXulP2FACd1aC7f2nTuqSPbqg==} + dev: true + + /@changesets/git@2.0.0: + resolution: {integrity: sha512-enUVEWbiqUTxqSnmesyJGWfzd51PY4H7mH9yUw0hPVpZBJ6tQZFMU3F3mT/t9OJ/GjyiM4770i+sehAn6ymx6A==} + dependencies: + '@babel/runtime': 7.21.5 + '@changesets/errors': 0.1.4 + '@changesets/types': 5.2.1 + '@manypkg/get-packages': 1.1.3 + is-subdir: 1.2.0 + micromatch: 4.0.5 + spawndamnit: 2.0.0 + dev: true + + /@changesets/logger@0.0.5: + resolution: {integrity: sha512-gJyZHomu8nASHpaANzc6bkQMO9gU/ib20lqew1rVx753FOxffnCrJlGIeQVxNWCqM+o6OOleCo/ivL8UAO5iFw==} + dependencies: + chalk: 2.4.2 + dev: true + + /@changesets/parse@0.3.16: + resolution: {integrity: sha512-127JKNd167ayAuBjUggZBkmDS5fIKsthnr9jr6bdnuUljroiERW7FBTDNnNVyJ4l69PzR57pk6mXQdtJyBCJKg==} + dependencies: + '@changesets/types': 5.2.1 + js-yaml: 3.14.1 + dev: true + + /@changesets/pre@1.0.14: + resolution: {integrity: sha512-dTsHmxQWEQekHYHbg+M1mDVYFvegDh9j/kySNuDKdylwfMEevTeDouR7IfHNyVodxZXu17sXoJuf2D0vi55FHQ==} + dependencies: + '@babel/runtime': 7.20.13 + '@changesets/errors': 0.1.4 + '@changesets/types': 5.2.1 + '@manypkg/get-packages': 1.1.3 + fs-extra: 7.0.1 + dev: true + + /@changesets/read@0.5.9: + resolution: {integrity: sha512-T8BJ6JS6j1gfO1HFq50kU3qawYxa4NTbI/ASNVVCBTsKquy2HYwM9r7ZnzkiMe8IEObAJtUVGSrePCOxAK2haQ==} + dependencies: + '@babel/runtime': 7.20.13 + '@changesets/git': 2.0.0 + '@changesets/logger': 0.0.5 + '@changesets/parse': 0.3.16 + '@changesets/types': 5.2.1 + chalk: 2.4.2 + fs-extra: 7.0.1 + p-filter: 2.1.0 + dev: true + + /@changesets/types@4.1.0: + resolution: {integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==} + dev: true + + /@changesets/types@5.2.1: + resolution: {integrity: sha512-myLfHbVOqaq9UtUKqR/nZA/OY7xFjQMdfgfqeZIBK4d0hA6pgxArvdv8M+6NUzzBsjWLOtvApv8YHr4qM+Kpfg==} + dev: true + + /@changesets/write@0.2.3: + resolution: {integrity: sha512-Dbamr7AIMvslKnNYsLFafaVORx4H0pvCA2MHqgtNCySMe1blImEyAEOzDmcgKAkgz4+uwoLz7demIrX+JBr/Xw==} + dependencies: + '@babel/runtime': 7.20.13 + '@changesets/types': 5.2.1 + fs-extra: 7.0.1 + human-id: 1.0.2 + prettier: 2.8.4 + dev: true + + /@csstools/selector-specificity@2.1.1(postcss-selector-parser@6.0.11)(postcss@8.4.21): + resolution: {integrity: sha512-jwx+WCqszn53YHOfvFMJJRd/B2GqkCBt+1MJSG6o5/s8+ytHMvDZXsJgUEWLk12UnLd7HYKac4BYU5i/Ron1Cw==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + postcss-selector-parser: ^6.0.10 + dependencies: + postcss: 8.4.21 + postcss-selector-parser: 6.0.11 + dev: true + + /@emotion/babel-plugin@11.10.5(@babel/core@7.20.12): + resolution: {integrity: sha512-xE7/hyLHJac7D2Ve9dKroBBZqBT7WuPQmWcq7HSGb84sUuP4mlOWoB8dvVfD9yk5DHkU1m6RW7xSoDtnQHNQeA==} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-module-imports': 7.18.6 + '@babel/plugin-syntax-jsx': 7.18.6(@babel/core@7.20.12) + '@babel/runtime': 7.21.5 + '@emotion/hash': 0.9.0 + '@emotion/memoize': 0.8.0 + '@emotion/serialize': 1.1.1 + babel-plugin-macros: 3.1.0 + convert-source-map: 1.9.0 + escape-string-regexp: 4.0.0 + find-root: 1.1.0 + source-map: 0.5.7 + stylis: 4.1.3 + + /@emotion/cache@11.10.5: + resolution: {integrity: sha512-dGYHWyzTdmK+f2+EnIGBpkz1lKc4Zbj2KHd4cX3Wi8/OWr5pKslNjc3yABKH4adRGCvSX4VDC0i04mrrq0aiRA==} + dependencies: + '@emotion/memoize': 0.8.0 + '@emotion/sheet': 1.2.1 + '@emotion/utils': 1.2.0 + '@emotion/weak-memoize': 0.3.0 + stylis: 4.1.3 + + /@emotion/hash@0.9.0: + resolution: {integrity: sha512-14FtKiHhy2QoPIzdTcvh//8OyBlknNs2nXRwIhG904opCby3l+9Xaf/wuPvICBF0rc1ZCNBd3nKe9cd2mecVkQ==} + + /@emotion/is-prop-valid@1.2.0: + resolution: {integrity: sha512-3aDpDprjM0AwaxGE09bOPkNxHpBd+kA6jty3RnaEXdweX1DF1U3VQpPYb0g1IStAuK7SVQ1cy+bNBBKp4W3Fjg==} + dependencies: + '@emotion/memoize': 0.8.0 + + /@emotion/memoize@0.8.0: + resolution: {integrity: sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA==} + + /@emotion/react@11.10.5(@babel/core@7.20.12)(@types/react@17.0.53)(react@17.0.2): + resolution: {integrity: sha512-TZs6235tCJ/7iF6/rvTaOH4oxQg2gMAcdHemjwLKIjKz4rRuYe1HJ2TQJKnAcRAfOUDdU8XoDadCe1rl72iv8A==} + peerDependencies: + '@babel/core': ^7.0.0 + '@types/react': '*' + react: '>=16.8.0' + peerDependenciesMeta: + '@babel/core': + optional: true + '@types/react': + optional: true + dependencies: + '@babel/core': 7.20.12 + '@babel/runtime': 7.20.13 + '@emotion/babel-plugin': 11.10.5(@babel/core@7.20.12) + '@emotion/cache': 11.10.5 + '@emotion/serialize': 1.1.1 + '@emotion/use-insertion-effect-with-fallbacks': 1.0.0(react@17.0.2) + '@emotion/utils': 1.2.0 + '@emotion/weak-memoize': 0.3.0 + '@types/react': 17.0.53 + hoist-non-react-statics: 3.3.2 + react: 17.0.2 + dev: true + + /@emotion/react@11.10.5(@babel/core@7.20.12)(@types/react@17.0.53)(react@18.2.0): + resolution: {integrity: sha512-TZs6235tCJ/7iF6/rvTaOH4oxQg2gMAcdHemjwLKIjKz4rRuYe1HJ2TQJKnAcRAfOUDdU8XoDadCe1rl72iv8A==} + peerDependencies: + '@babel/core': ^7.0.0 + '@types/react': '*' + react: '>=16.8.0' + peerDependenciesMeta: + '@babel/core': + optional: true + '@types/react': + optional: true + dependencies: + '@babel/core': 7.20.12 + '@babel/runtime': 7.20.13 + '@emotion/babel-plugin': 11.10.5(@babel/core@7.20.12) + '@emotion/cache': 11.10.5 + '@emotion/serialize': 1.1.1 + '@emotion/use-insertion-effect-with-fallbacks': 1.0.0(react@18.2.0) + '@emotion/utils': 1.2.0 + '@emotion/weak-memoize': 0.3.0 + '@types/react': 17.0.53 + hoist-non-react-statics: 3.3.2 + react: 18.2.0 + dev: false + + /@emotion/serialize@1.1.1: + resolution: {integrity: sha512-Zl/0LFggN7+L1liljxXdsVSVlg6E/Z/olVWpfxUTxOAmi8NU7YoeWeLfi1RmnB2TATHoaWwIBRoL+FvAJiTUQA==} + dependencies: + '@emotion/hash': 0.9.0 + '@emotion/memoize': 0.8.0 + '@emotion/unitless': 0.8.0 + '@emotion/utils': 1.2.0 + csstype: 3.1.1 + + /@emotion/sheet@1.2.1: + resolution: {integrity: sha512-zxRBwl93sHMsOj4zs+OslQKg/uhF38MB+OMKoCrVuS0nyTkqnau+BM3WGEoOptg9Oz45T/aIGs1qbVAsEFo3nA==} + + /@emotion/styled@11.10.5(@babel/core@7.20.12)(@emotion/react@11.10.5)(@types/react@17.0.53)(react@17.0.2): + resolution: {integrity: sha512-8EP6dD7dMkdku2foLoruPCNkRevzdcBaY6q0l0OsbyJK+x8D9HWjX27ARiSIKNF634hY9Zdoedh8bJCiva8yZw==} + peerDependencies: + '@babel/core': ^7.0.0 + '@emotion/react': ^11.0.0-rc.0 + '@types/react': '*' + react: '>=16.8.0' + peerDependenciesMeta: + '@babel/core': + optional: true + '@types/react': + optional: true + dependencies: + '@babel/core': 7.20.12 + '@babel/runtime': 7.20.13 + '@emotion/babel-plugin': 11.10.5(@babel/core@7.20.12) + '@emotion/is-prop-valid': 1.2.0 + '@emotion/react': 11.10.5(@babel/core@7.20.12)(@types/react@17.0.53)(react@17.0.2) + '@emotion/serialize': 1.1.1 + '@emotion/use-insertion-effect-with-fallbacks': 1.0.0(react@17.0.2) + '@emotion/utils': 1.2.0 + '@types/react': 17.0.53 + react: 17.0.2 + dev: true + + /@emotion/styled@11.10.5(@babel/core@7.20.12)(@emotion/react@11.10.5)(@types/react@17.0.53)(react@18.2.0): + resolution: {integrity: sha512-8EP6dD7dMkdku2foLoruPCNkRevzdcBaY6q0l0OsbyJK+x8D9HWjX27ARiSIKNF634hY9Zdoedh8bJCiva8yZw==} + peerDependencies: + '@babel/core': ^7.0.0 + '@emotion/react': ^11.0.0-rc.0 + '@types/react': '*' + react: '>=16.8.0' + peerDependenciesMeta: + '@babel/core': + optional: true + '@types/react': + optional: true + dependencies: + '@babel/core': 7.20.12 + '@babel/runtime': 7.20.13 + '@emotion/babel-plugin': 11.10.5(@babel/core@7.20.12) + '@emotion/is-prop-valid': 1.2.0 + '@emotion/react': 11.10.5(@babel/core@7.20.12)(@types/react@17.0.53)(react@18.2.0) + '@emotion/serialize': 1.1.1 + '@emotion/use-insertion-effect-with-fallbacks': 1.0.0(react@18.2.0) + '@emotion/utils': 1.2.0 + '@types/react': 17.0.53 + react: 18.2.0 + dev: false + + /@emotion/unitless@0.8.0: + resolution: {integrity: sha512-VINS5vEYAscRl2ZUDiT3uMPlrFQupiKgHz5AA4bCH1miKBg4qtwkim1qPmJj/4WG6TreYMY111rEFsjupcOKHw==} + + /@emotion/use-insertion-effect-with-fallbacks@1.0.0(react@17.0.2): + resolution: {integrity: sha512-1eEgUGmkaljiBnRMTdksDV1W4kUnmwgp7X9G8B++9GYwl1lUdqSndSriIrTJ0N7LQaoauY9JJ2yhiOYK5+NI4A==} + peerDependencies: + react: '>=16.8.0' + dependencies: + react: 17.0.2 + dev: true + + /@emotion/use-insertion-effect-with-fallbacks@1.0.0(react@18.2.0): + resolution: {integrity: sha512-1eEgUGmkaljiBnRMTdksDV1W4kUnmwgp7X9G8B++9GYwl1lUdqSndSriIrTJ0N7LQaoauY9JJ2yhiOYK5+NI4A==} + peerDependencies: + react: '>=16.8.0' + dependencies: + react: 18.2.0 + dev: false + + /@emotion/utils@1.2.0: + resolution: {integrity: sha512-sn3WH53Kzpw8oQ5mgMmIzzyAaH2ZqFEbozVVBSYp538E06OSE6ytOp7pRAjNQR+Q/orwqdQYJSe2m3hCOeznkw==} + + /@emotion/weak-memoize@0.3.0: + resolution: {integrity: sha512-AHPmaAx+RYfZz0eYu6Gviiagpmiyw98ySSlQvCUhVGDRtDFe4DBS0x1bSjdF3gqUDYOczB+yYvBTtEylYSdRhg==} + + /@esbuild/android-arm64@0.16.17: + resolution: {integrity: sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm@0.16.17: + resolution: {integrity: sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64@0.16.17: + resolution: {integrity: sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64@0.16.17: + resolution: {integrity: sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64@0.16.17: + resolution: {integrity: sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64@0.16.17: + resolution: {integrity: sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64@0.16.17: + resolution: {integrity: sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64@0.16.17: + resolution: {integrity: sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm@0.16.17: + resolution: {integrity: sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32@0.16.17: + resolution: {integrity: sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64@0.16.17: + resolution: {integrity: sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-mips64el@0.16.17: + resolution: {integrity: sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ppc64@0.16.17: + resolution: {integrity: sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64@0.16.17: + resolution: {integrity: sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x@0.16.17: + resolution: {integrity: sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-x64@0.16.17: + resolution: {integrity: sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64@0.16.17: + resolution: {integrity: sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64@0.16.17: + resolution: {integrity: sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/sunos-x64@0.16.17: + resolution: {integrity: sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-arm64@0.16.17: + resolution: {integrity: sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-ia32@0.16.17: + resolution: {integrity: sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-x64@0.16.17: + resolution: {integrity: sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@eslint/eslintrc@1.4.1: + resolution: {integrity: sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + ajv: 6.12.6 + debug: 4.3.4 + espree: 9.4.1 + globals: 13.20.0 + ignore: 5.2.4 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + /@ethereumjs/common@2.5.0: + resolution: {integrity: sha512-DEHjW6e38o+JmB/NO3GZBpW4lpaiBpkFgXF6jLcJ6gETBYpEyaA5nTimsWBUJR3Vmtm/didUEbNjajskugZORg==} + dependencies: + crc-32: 1.2.2 + ethereumjs-util: 7.1.5 + + /@ethereumjs/tx@3.3.2: + resolution: {integrity: sha512-6AaJhwg4ucmwTvw/1qLaZUX5miWrwZ4nLOUsKyb/HtzS3BMw/CasKhdi1ims9mBKeK9sOJCH4qGKOBGyJCeeog==} + dependencies: + '@ethereumjs/common': 2.5.0 + ethereumjs-util: 7.1.5 + + /@ethersproject/abi@5.0.0-beta.153: + resolution: {integrity: sha512-aXweZ1Z7vMNzJdLpR1CZUAIgnwjrZeUSvN9syCwlBaEBUFJmFY+HHnfuTI5vIhVs/mRkfJVrbEyl51JZQqyjAg==} + dependencies: + '@ethersproject/address': 5.7.0 + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/constants': 5.7.0 + '@ethersproject/hash': 5.7.0 + '@ethersproject/keccak256': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/properties': 5.7.0 + '@ethersproject/strings': 5.7.0 + dev: false + optional: true + + /@ethersproject/abi@5.7.0: + resolution: {integrity: sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==} + dependencies: + '@ethersproject/address': 5.7.0 + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/constants': 5.7.0 + '@ethersproject/hash': 5.7.0 + '@ethersproject/keccak256': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/properties': 5.7.0 + '@ethersproject/strings': 5.7.0 + + /@ethersproject/abstract-provider@5.7.0: + resolution: {integrity: sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==} + dependencies: + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/networks': 5.7.1 + '@ethersproject/properties': 5.7.0 + '@ethersproject/transactions': 5.7.0 + '@ethersproject/web': 5.7.1 + + /@ethersproject/abstract-signer@5.7.0: + resolution: {integrity: sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==} + dependencies: + '@ethersproject/abstract-provider': 5.7.0 + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/properties': 5.7.0 + + /@ethersproject/address@5.7.0: + resolution: {integrity: sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==} + dependencies: + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/keccak256': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/rlp': 5.7.0 + + /@ethersproject/base64@5.7.0: + resolution: {integrity: sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==} + dependencies: + '@ethersproject/bytes': 5.7.0 + + /@ethersproject/bignumber@5.7.0: + resolution: {integrity: sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==} + dependencies: + '@ethersproject/bytes': 5.7.0 + '@ethersproject/logger': 5.7.0 + bn.js: 5.2.1 + + /@ethersproject/bytes@5.7.0: + resolution: {integrity: sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==} + dependencies: + '@ethersproject/logger': 5.7.0 + + /@ethersproject/constants@5.7.0: + resolution: {integrity: sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==} + dependencies: + '@ethersproject/bignumber': 5.7.0 + + /@ethersproject/hash@5.7.0: + resolution: {integrity: sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==} + dependencies: + '@ethersproject/abstract-signer': 5.7.0 + '@ethersproject/address': 5.7.0 + '@ethersproject/base64': 5.7.0 + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/keccak256': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/properties': 5.7.0 + '@ethersproject/strings': 5.7.0 + + /@ethersproject/keccak256@5.7.0: + resolution: {integrity: sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==} + dependencies: + '@ethersproject/bytes': 5.7.0 + js-sha3: 0.8.0 + + /@ethersproject/logger@5.7.0: + resolution: {integrity: sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==} + + /@ethersproject/networks@5.7.1: + resolution: {integrity: sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==} + dependencies: + '@ethersproject/logger': 5.7.0 + + /@ethersproject/properties@5.7.0: + resolution: {integrity: sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==} + dependencies: + '@ethersproject/logger': 5.7.0 + + /@ethersproject/rlp@5.7.0: + resolution: {integrity: sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==} + dependencies: + '@ethersproject/bytes': 5.7.0 + '@ethersproject/logger': 5.7.0 + + /@ethersproject/signing-key@5.7.0: + resolution: {integrity: sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==} + dependencies: + '@ethersproject/bytes': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/properties': 5.7.0 + bn.js: 5.2.1 + elliptic: 6.5.4 + hash.js: 1.1.7 + + /@ethersproject/strings@5.7.0: + resolution: {integrity: sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==} + dependencies: + '@ethersproject/bytes': 5.7.0 + '@ethersproject/constants': 5.7.0 + '@ethersproject/logger': 5.7.0 + + /@ethersproject/transactions@5.7.0: + resolution: {integrity: sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==} + dependencies: + '@ethersproject/address': 5.7.0 + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/constants': 5.7.0 + '@ethersproject/keccak256': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/properties': 5.7.0 + '@ethersproject/rlp': 5.7.0 + '@ethersproject/signing-key': 5.7.0 + + /@ethersproject/web@5.7.1: + resolution: {integrity: sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==} + dependencies: + '@ethersproject/base64': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/properties': 5.7.0 + '@ethersproject/strings': 5.7.0 + + /@flyyer/use-googlefonts@0.4.2(react@18.2.0): + resolution: {integrity: sha512-T8TOhUUudJwQC96Xv44STL3nLE5ThtUoZuEWTTVlkFPFkiT4RLXUnPxOKG+lWOEMcAS1XWmfA6mLXY9ehtn6iQ==} + peerDependencies: + react: '>=16.0.0' + dependencies: + fontfaceobserver: 2.3.0 + react: 18.2.0 + dev: false + + /@headlessui/react@1.7.12(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-FhSx5V+Qp0GvbTpaxyS+ymGDDNntCacClWsk/d8Upbr19g3AsPbjfPk4+m2CgJGcuCB5Dz7LpUIOAbvQTyjL2g==} + engines: {node: '>=10'} + peerDependencies: + react: ^16 || ^17 || ^18 + react-dom: ^16 || ^17 || ^18 + dependencies: + client-only: 0.0.1 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@humanwhocodes/config-array@0.11.8: + resolution: {integrity: sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==} + engines: {node: '>=10.10.0'} + dependencies: + '@humanwhocodes/object-schema': 1.2.1 + debug: 4.3.4 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + /@humanwhocodes/module-importer@1.0.1: + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + + /@humanwhocodes/object-schema@1.2.1: + resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} + + /@jridgewell/gen-mapping@0.1.1: + resolution: {integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.14 + + /@jridgewell/gen-mapping@0.3.2: + resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.14 + '@jridgewell/trace-mapping': 0.3.17 + + /@jridgewell/resolve-uri@3.1.0: + resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} + engines: {node: '>=6.0.0'} + + /@jridgewell/set-array@1.1.2: + resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} + engines: {node: '>=6.0.0'} + + /@jridgewell/sourcemap-codec@1.4.14: + resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} + + /@jridgewell/trace-mapping@0.3.17: + resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==} + dependencies: + '@jridgewell/resolve-uri': 3.1.0 + '@jridgewell/sourcemap-codec': 1.4.14 + + /@ledgerhq/devices@4.78.0: + resolution: {integrity: sha512-tWKS5WM/UU82czihnVjRwz9SXNTQzWjGJ/7+j/xZ70O86nlnGJ1aaFbs5/WTzfrVKpOKgj1ZoZkAswX67i/JTw==} + dependencies: + '@ledgerhq/errors': 4.78.0 + '@ledgerhq/logs': 4.72.0 + rxjs: 6.6.7 + dev: false + + /@ledgerhq/errors@4.78.0: + resolution: {integrity: sha512-FX6zHZeiNtegBvXabK6M5dJ+8OV8kQGGaGtuXDeK/Ss5EmG4Ltxc6Lnhe8hiHpm9pCHtktOsnUVL7IFBdHhYUg==} + dev: false + + /@ledgerhq/hw-app-eth@4.78.0: + resolution: {integrity: sha512-m4s4Zhy4lwYJjZB3xPeGV/8mxQcnoui+Eu1KDEl6atsquZHUpbtern/0hZl88+OlFUz0XrX34W3I9cqj61Y6KA==} + dependencies: + '@ledgerhq/errors': 4.78.0 + '@ledgerhq/hw-transport': 4.78.0 + dev: false + + /@ledgerhq/hw-transport-node-hid-noevents@4.78.0: + resolution: {integrity: sha512-CJPVR4wksq+apiXH2GnsttguBxmj9zdM2HjqZ3dHZN8SFW/9Xj3k+baS+pYoUISkECVxDrdfaW3Bd5dWv+jPUg==} + dependencies: + '@ledgerhq/devices': 4.78.0 + '@ledgerhq/errors': 4.78.0 + '@ledgerhq/hw-transport': 4.78.0 + '@ledgerhq/logs': 4.72.0 + node-hid: 0.7.9 + dev: false + optional: true + + /@ledgerhq/hw-transport-node-hid@4.78.0: + resolution: {integrity: sha512-OMrY2ecfQ1XjMAuuHqu3n3agMPR06HN1s0ENrKc+Twbb5A17jujpv07WzjxfTN2V1G7vgeZpRqrg2ulhowWbdg==} + requiresBuild: true + dependencies: + '@ledgerhq/devices': 4.78.0 + '@ledgerhq/errors': 4.78.0 + '@ledgerhq/hw-transport': 4.78.0 + '@ledgerhq/hw-transport-node-hid-noevents': 4.78.0 + '@ledgerhq/logs': 4.72.0 + lodash: 4.17.21 + node-hid: 0.7.9 + usb: 1.9.2 + dev: false + optional: true + + /@ledgerhq/hw-transport-u2f@4.24.0: + resolution: {integrity: sha512-/gFjhkM0sJfZ7iUf8HoIkGufAWgPacrbb1LW0TvWnZwvsATVJ1BZJBtrr90Wo401PKsjVwYtFt3Ce4gOAUv9jQ==} + deprecated: '@ledgerhq/hw-transport-u2f is deprecated. Please use @ledgerhq/hw-transport-webusb or @ledgerhq/hw-transport-webhid. https://github.com/LedgerHQ/ledgerjs/blob/master/docs/migrate_webusb.md' + dependencies: + '@ledgerhq/hw-transport': 4.78.0 + u2f-api: 0.2.7 + dev: false + + /@ledgerhq/hw-transport@4.78.0: + resolution: {integrity: sha512-xQu16OMPQjFYLjqCysij+8sXtdWv2YLxPrB6FoLvEWGTlQ7yL1nUBRQyzyQtWIYqZd4THQowQmzm1VjxuN6SZw==} + dependencies: + '@ledgerhq/devices': 4.78.0 + '@ledgerhq/errors': 4.78.0 + events: 3.3.0 + dev: false + + /@ledgerhq/logs@4.72.0: + resolution: {integrity: sha512-o+TYF8vBcyySRsb2kqBDv/KMeme8a2nwWoG+lAWzbDmWfb2/MrVWYCVYDYvjXdSoI/Cujqy1i0gIDrkdxa9chA==} + dev: false + + /@manypkg/find-root@1.1.0: + resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} + dependencies: + '@babel/runtime': 7.21.5 + '@types/node': 12.20.55 + find-up: 4.1.0 + fs-extra: 8.1.0 + dev: true + + /@manypkg/get-packages@1.1.3: + resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} + dependencies: + '@babel/runtime': 7.20.13 + '@changesets/types': 4.1.0 + '@manypkg/find-root': 1.1.0 + fs-extra: 8.1.0 + globby: 11.1.0 + read-yaml-file: 1.1.0 + dev: true + + /@metamask/obs-store@7.0.0: + resolution: {integrity: sha512-Tr61Uu9CGXkCg5CZwOYRMQERd+y6fbtrtLd/PzDTPHO5UJpmSbU+7MPcQK7d1DwZCOCeCIvhmZSUCvYliC8uGw==} + engines: {node: '>=12.0.0'} + dependencies: + '@metamask/safe-event-emitter': 2.0.0 + through2: 2.0.5 + dev: false + + /@metamask/onboarding@1.0.1: + resolution: {integrity: sha512-FqHhAsCI+Vacx2qa5mAFcWNSrTcVGMNjzxVgaX8ECSny/BJ9/vgXP9V7WF/8vb9DltPeQkxr+Fnfmm6GHfmdTQ==} + dependencies: + bowser: 2.11.0 + dev: false + + /@metamask/safe-event-emitter@2.0.0: + resolution: {integrity: sha512-/kSXhY692qiV1MXu6EeOZvg5nECLclxNXcKCxJ3cXQgYuRymRHpdx/t7JXfsK+JLjwA1e1c1/SBrlQYpusC29Q==} + dev: false + + /@microsoft/api-extractor-model@7.26.4: + resolution: {integrity: sha512-PDCgCzXDo+SLY5bsfl4bS7hxaeEtnXj7XtuzEE+BtALp7B5mK/NrS2kHWU69pohgsRmEALycQdaQPXoyT2i5MQ==} + dependencies: + '@microsoft/tsdoc': 0.14.2 + '@microsoft/tsdoc-config': 0.16.2 + '@rushstack/node-core-library': 3.55.2 + transitivePeerDependencies: + - '@types/node' + dev: true + + /@microsoft/api-extractor-model@7.26.4(@types/node@18.13.0): + resolution: {integrity: sha512-PDCgCzXDo+SLY5bsfl4bS7hxaeEtnXj7XtuzEE+BtALp7B5mK/NrS2kHWU69pohgsRmEALycQdaQPXoyT2i5MQ==} + dependencies: + '@microsoft/tsdoc': 0.14.2 + '@microsoft/tsdoc-config': 0.16.2 + '@rushstack/node-core-library': 3.55.2(@types/node@18.13.0) + transitivePeerDependencies: + - '@types/node' + dev: true + + /@microsoft/api-extractor-model@7.26.4(@types/node@18.15.3): + resolution: {integrity: sha512-PDCgCzXDo+SLY5bsfl4bS7hxaeEtnXj7XtuzEE+BtALp7B5mK/NrS2kHWU69pohgsRmEALycQdaQPXoyT2i5MQ==} + dependencies: + '@microsoft/tsdoc': 0.14.2 + '@microsoft/tsdoc-config': 0.16.2 + '@rushstack/node-core-library': 3.55.2(@types/node@18.15.3) + transitivePeerDependencies: + - '@types/node' + dev: true + + /@microsoft/api-extractor@7.34.4: + resolution: {integrity: sha512-HOdcci2nT40ejhwPC3Xja9G+WSJmWhCUKKryRfQYsmE9cD+pxmBaKBKCbuS9jUcl6bLLb4Gz+h7xEN5r0QiXnQ==} + hasBin: true + dependencies: + '@microsoft/api-extractor-model': 7.26.4 + '@microsoft/tsdoc': 0.14.2 + '@microsoft/tsdoc-config': 0.16.2 + '@rushstack/node-core-library': 3.55.2 + '@rushstack/rig-package': 0.3.18 + '@rushstack/ts-command-line': 4.13.2 + colors: 1.2.5 + lodash: 4.17.21 + resolve: 1.22.1 + semver: 7.3.8 + source-map: 0.6.1 + typescript: 4.8.4 + transitivePeerDependencies: + - '@types/node' + dev: true + + /@microsoft/api-extractor@7.34.4(@types/node@18.13.0): + resolution: {integrity: sha512-HOdcci2nT40ejhwPC3Xja9G+WSJmWhCUKKryRfQYsmE9cD+pxmBaKBKCbuS9jUcl6bLLb4Gz+h7xEN5r0QiXnQ==} + hasBin: true + dependencies: + '@microsoft/api-extractor-model': 7.26.4(@types/node@18.13.0) + '@microsoft/tsdoc': 0.14.2 + '@microsoft/tsdoc-config': 0.16.2 + '@rushstack/node-core-library': 3.55.2(@types/node@18.13.0) + '@rushstack/rig-package': 0.3.18 + '@rushstack/ts-command-line': 4.13.2 + colors: 1.2.5 + lodash: 4.17.21 + resolve: 1.22.1 + semver: 7.3.8 + source-map: 0.6.1 + typescript: 4.8.4 + transitivePeerDependencies: + - '@types/node' + dev: true + + /@microsoft/api-extractor@7.34.4(@types/node@18.15.3): + resolution: {integrity: sha512-HOdcci2nT40ejhwPC3Xja9G+WSJmWhCUKKryRfQYsmE9cD+pxmBaKBKCbuS9jUcl6bLLb4Gz+h7xEN5r0QiXnQ==} + hasBin: true + dependencies: + '@microsoft/api-extractor-model': 7.26.4(@types/node@18.15.3) + '@microsoft/tsdoc': 0.14.2 + '@microsoft/tsdoc-config': 0.16.2 + '@rushstack/node-core-library': 3.55.2(@types/node@18.15.3) + '@rushstack/rig-package': 0.3.18 + '@rushstack/ts-command-line': 4.13.2 + colors: 1.2.5 + lodash: 4.17.21 + resolve: 1.22.1 + semver: 7.3.8 + source-map: 0.6.1 + typescript: 4.8.4 + transitivePeerDependencies: + - '@types/node' + dev: true + + /@microsoft/tsdoc-config@0.16.2: + resolution: {integrity: sha512-OGiIzzoBLgWWR0UdRJX98oYO+XKGf7tiK4Zk6tQ/E4IJqGCe7dvkTvgDZV5cFJUzLGDOjeAXrnZoA6QkVySuxw==} + dependencies: + '@microsoft/tsdoc': 0.14.2 + ajv: 6.12.6 + jju: 1.4.0 + resolve: 1.19.0 + dev: true + + /@microsoft/tsdoc@0.14.2: + resolution: {integrity: sha512-9b8mPpKrfeGRuhFH5iO1iwCLeIIsV6+H1sRfxbkoGXIyQE2BTsPd9zqSqQJ+pv5sJ/hT5M1zvOFL02MnEezFug==} + dev: true + + /@mui/base@5.0.0-alpha.118(@types/react@17.0.53)(react-dom@17.0.2)(react@17.0.2): + resolution: {integrity: sha512-GAEpqhnuHjRaAZLdxFNuOf2GDTp9sUawM46oHZV4VnYPFjXJDkIYFWfIQLONb0nga92OiqS5DD/scGzVKCL0Mw==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@types/react': ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + react-dom: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.21.5 + '@emotion/is-prop-valid': 1.2.0 + '@mui/types': 7.2.3(@types/react@17.0.53) + '@mui/utils': 5.11.9(react@17.0.2) + '@popperjs/core': 2.11.6 + '@types/react': 17.0.53 + clsx: 1.2.1 + prop-types: 15.8.1 + react: 17.0.2 + react-dom: 17.0.2(react@17.0.2) + react-is: 18.2.0 + dev: true + + /@mui/base@5.0.0-alpha.118(@types/react@17.0.53)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-GAEpqhnuHjRaAZLdxFNuOf2GDTp9sUawM46oHZV4VnYPFjXJDkIYFWfIQLONb0nga92OiqS5DD/scGzVKCL0Mw==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@types/react': ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + react-dom: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.21.5 + '@emotion/is-prop-valid': 1.2.0 + '@mui/types': 7.2.3(@types/react@17.0.53) + '@mui/utils': 5.11.9(react@18.2.0) + '@popperjs/core': 2.11.6 + '@types/react': 17.0.53 + clsx: 1.2.1 + prop-types: 15.8.1 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-is: 18.2.0 + dev: false + + /@mui/core-downloads-tracker@5.11.9: + resolution: {integrity: sha512-YGEtucQ/Nl91VZkzYaLad47Cdui51n/hW+OQm4210g4N3/nZzBxmGeKfubEalf+ShKH4aYDS86XTO6q/TpZnjQ==} + + /@mui/material@5.11.9(@emotion/react@11.10.5)(@emotion/styled@11.10.5)(@types/react@17.0.53)(react-dom@17.0.2)(react@17.0.2): + resolution: {integrity: sha512-Wb3WzjzYyi/WKSl/XlF7aC8kk2NE21IoHMF7hNQMkPb0GslbWwR4OUjlBpxtG+RSZn44wMZkEDNB9Hw0TDsd8g==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@emotion/react': ^11.5.0 + '@emotion/styled': ^11.3.0 + '@types/react': ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + react-dom: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@emotion/react': + optional: true + '@emotion/styled': + optional: true + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.20.13 + '@emotion/react': 11.10.5(@babel/core@7.20.12)(@types/react@17.0.53)(react@17.0.2) + '@emotion/styled': 11.10.5(@babel/core@7.20.12)(@emotion/react@11.10.5)(@types/react@17.0.53)(react@17.0.2) + '@mui/base': 5.0.0-alpha.118(@types/react@17.0.53)(react-dom@17.0.2)(react@17.0.2) + '@mui/core-downloads-tracker': 5.11.9 + '@mui/system': 5.11.9(@emotion/react@11.10.5)(@emotion/styled@11.10.5)(@types/react@17.0.53)(react@17.0.2) + '@mui/types': 7.2.3(@types/react@17.0.53) + '@mui/utils': 5.11.9(react@17.0.2) + '@types/react': 17.0.53 + '@types/react-transition-group': 4.4.5 + clsx: 1.2.1 + csstype: 3.1.1 + prop-types: 15.8.1 + react: 17.0.2 + react-dom: 17.0.2(react@17.0.2) + react-is: 18.2.0 + react-transition-group: 4.4.5(react-dom@17.0.2)(react@17.0.2) + dev: true + + /@mui/material@5.11.9(@emotion/react@11.10.5)(@emotion/styled@11.10.5)(@types/react@17.0.53)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-Wb3WzjzYyi/WKSl/XlF7aC8kk2NE21IoHMF7hNQMkPb0GslbWwR4OUjlBpxtG+RSZn44wMZkEDNB9Hw0TDsd8g==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@emotion/react': ^11.5.0 + '@emotion/styled': ^11.3.0 + '@types/react': ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + react-dom: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@emotion/react': + optional: true + '@emotion/styled': + optional: true + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.20.13 + '@emotion/react': 11.10.5(@babel/core@7.20.12)(@types/react@17.0.53)(react@18.2.0) + '@emotion/styled': 11.10.5(@babel/core@7.20.12)(@emotion/react@11.10.5)(@types/react@17.0.53)(react@18.2.0) + '@mui/base': 5.0.0-alpha.118(@types/react@17.0.53)(react-dom@18.2.0)(react@18.2.0) + '@mui/core-downloads-tracker': 5.11.9 + '@mui/system': 5.11.9(@emotion/react@11.10.5)(@emotion/styled@11.10.5)(@types/react@17.0.53)(react@18.2.0) + '@mui/types': 7.2.3(@types/react@17.0.53) + '@mui/utils': 5.11.9(react@18.2.0) + '@types/react': 17.0.53 + '@types/react-transition-group': 4.4.5 + clsx: 1.2.1 + csstype: 3.1.1 + prop-types: 15.8.1 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-is: 18.2.0 + react-transition-group: 4.4.5(react-dom@18.2.0)(react@18.2.0) + dev: false + + /@mui/private-theming@5.11.9(@types/react@17.0.53)(react@17.0.2): + resolution: {integrity: sha512-XMyVIFGomVCmCm92EvYlgq3zrC9K+J6r7IKl/rBJT2/xVYoRY6uM7jeB+Wxh7kXxnW9Dbqsr2yL3cx6wSD1sAg==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@types/react': ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.21.5 + '@mui/utils': 5.11.9(react@17.0.2) + '@types/react': 17.0.53 + prop-types: 15.8.1 + react: 17.0.2 + dev: true + + /@mui/private-theming@5.11.9(@types/react@17.0.53)(react@18.2.0): + resolution: {integrity: sha512-XMyVIFGomVCmCm92EvYlgq3zrC9K+J6r7IKl/rBJT2/xVYoRY6uM7jeB+Wxh7kXxnW9Dbqsr2yL3cx6wSD1sAg==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@types/react': ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.21.5 + '@mui/utils': 5.11.9(react@18.2.0) + '@types/react': 17.0.53 + prop-types: 15.8.1 + react: 18.2.0 + dev: false + + /@mui/styled-engine@5.11.9(@emotion/react@11.10.5)(@emotion/styled@11.10.5)(react@17.0.2): + resolution: {integrity: sha512-bkh2CjHKOMy98HyOc8wQXEZvhOmDa/bhxMUekFX5IG0/w4f5HJ8R6+K6nakUUYNEgjOWPYzNPrvGB8EcGbhahQ==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@emotion/react': ^11.4.1 + '@emotion/styled': ^11.3.0 + react: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@emotion/react': + optional: true + '@emotion/styled': + optional: true + dependencies: + '@babel/runtime': 7.21.5 + '@emotion/cache': 11.10.5 + '@emotion/react': 11.10.5(@babel/core@7.20.12)(@types/react@17.0.53)(react@17.0.2) + '@emotion/styled': 11.10.5(@babel/core@7.20.12)(@emotion/react@11.10.5)(@types/react@17.0.53)(react@17.0.2) + csstype: 3.1.1 + prop-types: 15.8.1 + react: 17.0.2 + dev: true + + /@mui/styled-engine@5.11.9(@emotion/react@11.10.5)(@emotion/styled@11.10.5)(react@18.2.0): + resolution: {integrity: sha512-bkh2CjHKOMy98HyOc8wQXEZvhOmDa/bhxMUekFX5IG0/w4f5HJ8R6+K6nakUUYNEgjOWPYzNPrvGB8EcGbhahQ==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@emotion/react': ^11.4.1 + '@emotion/styled': ^11.3.0 + react: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@emotion/react': + optional: true + '@emotion/styled': + optional: true + dependencies: + '@babel/runtime': 7.21.5 + '@emotion/cache': 11.10.5 + '@emotion/react': 11.10.5(@babel/core@7.20.12)(@types/react@17.0.53)(react@18.2.0) + '@emotion/styled': 11.10.5(@babel/core@7.20.12)(@emotion/react@11.10.5)(@types/react@17.0.53)(react@18.2.0) + csstype: 3.1.1 + prop-types: 15.8.1 + react: 18.2.0 + dev: false + + /@mui/styles@5.11.9(@types/react@17.0.53)(react@17.0.2): + resolution: {integrity: sha512-AWur9Cx5IQ/FWHEpsHU78pNRelGiJLr4jHu+M3PT0rC9w5n7tjMT8oEdaZKPt1bYUiRvkLC/vpNH+E8ov8gXxA==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@types/react': ^17.0.0 + react: ^17.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.20.13 + '@emotion/hash': 0.9.0 + '@mui/private-theming': 5.11.9(@types/react@17.0.53)(react@17.0.2) + '@mui/types': 7.2.3(@types/react@17.0.53) + '@mui/utils': 5.11.9(react@17.0.2) + '@types/react': 17.0.53 + clsx: 1.2.1 + csstype: 3.1.1 + hoist-non-react-statics: 3.3.2 + jss: 10.10.0 + jss-plugin-camel-case: 10.10.0 + jss-plugin-default-unit: 10.10.0 + jss-plugin-global: 10.10.0 + jss-plugin-nested: 10.10.0 + jss-plugin-props-sort: 10.10.0 + jss-plugin-rule-value-function: 10.10.0 + jss-plugin-vendor-prefixer: 10.10.0 + prop-types: 15.8.1 + react: 17.0.2 + dev: true + + /@mui/styles@5.11.9(@types/react@17.0.53)(react@18.2.0): + resolution: {integrity: sha512-AWur9Cx5IQ/FWHEpsHU78pNRelGiJLr4jHu+M3PT0rC9w5n7tjMT8oEdaZKPt1bYUiRvkLC/vpNH+E8ov8gXxA==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@types/react': ^17.0.0 + react: ^17.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.20.13 + '@emotion/hash': 0.9.0 + '@mui/private-theming': 5.11.9(@types/react@17.0.53)(react@18.2.0) + '@mui/types': 7.2.3(@types/react@17.0.53) + '@mui/utils': 5.11.9(react@18.2.0) + '@types/react': 17.0.53 + clsx: 1.2.1 + csstype: 3.1.1 + hoist-non-react-statics: 3.3.2 + jss: 10.10.0 + jss-plugin-camel-case: 10.10.0 + jss-plugin-default-unit: 10.10.0 + jss-plugin-global: 10.10.0 + jss-plugin-nested: 10.10.0 + jss-plugin-props-sort: 10.10.0 + jss-plugin-rule-value-function: 10.10.0 + jss-plugin-vendor-prefixer: 10.10.0 + prop-types: 15.8.1 + react: 18.2.0 + dev: false + + /@mui/system@5.11.9(@emotion/react@11.10.5)(@emotion/styled@11.10.5)(@types/react@17.0.53)(react@17.0.2): + resolution: {integrity: sha512-h6uarf+l3FO6l75Nf7yO+qDGrIoa1DM9nAMCUFZQsNCDKOInRzcptnm8M1w/Z3gVetfeeGoIGAYuYKbft6KZZA==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@emotion/react': ^11.5.0 + '@emotion/styled': ^11.3.0 + '@types/react': ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@emotion/react': + optional: true + '@emotion/styled': + optional: true + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.21.5 + '@emotion/react': 11.10.5(@babel/core@7.20.12)(@types/react@17.0.53)(react@17.0.2) + '@emotion/styled': 11.10.5(@babel/core@7.20.12)(@emotion/react@11.10.5)(@types/react@17.0.53)(react@17.0.2) + '@mui/private-theming': 5.11.9(@types/react@17.0.53)(react@17.0.2) + '@mui/styled-engine': 5.11.9(@emotion/react@11.10.5)(@emotion/styled@11.10.5)(react@17.0.2) + '@mui/types': 7.2.3(@types/react@17.0.53) + '@mui/utils': 5.11.9(react@17.0.2) + '@types/react': 17.0.53 + clsx: 1.2.1 + csstype: 3.1.1 + prop-types: 15.8.1 + react: 17.0.2 + dev: true + + /@mui/system@5.11.9(@emotion/react@11.10.5)(@emotion/styled@11.10.5)(@types/react@17.0.53)(react@18.2.0): + resolution: {integrity: sha512-h6uarf+l3FO6l75Nf7yO+qDGrIoa1DM9nAMCUFZQsNCDKOInRzcptnm8M1w/Z3gVetfeeGoIGAYuYKbft6KZZA==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@emotion/react': ^11.5.0 + '@emotion/styled': ^11.3.0 + '@types/react': ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@emotion/react': + optional: true + '@emotion/styled': + optional: true + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.21.5 + '@emotion/react': 11.10.5(@babel/core@7.20.12)(@types/react@17.0.53)(react@18.2.0) + '@emotion/styled': 11.10.5(@babel/core@7.20.12)(@emotion/react@11.10.5)(@types/react@17.0.53)(react@18.2.0) + '@mui/private-theming': 5.11.9(@types/react@17.0.53)(react@18.2.0) + '@mui/styled-engine': 5.11.9(@emotion/react@11.10.5)(@emotion/styled@11.10.5)(react@18.2.0) + '@mui/types': 7.2.3(@types/react@17.0.53) + '@mui/utils': 5.11.9(react@18.2.0) + '@types/react': 17.0.53 + clsx: 1.2.1 + csstype: 3.1.1 + prop-types: 15.8.1 + react: 18.2.0 + dev: false + + /@mui/types@7.2.3(@types/react@17.0.53): + resolution: {integrity: sha512-tZ+CQggbe9Ol7e/Fs5RcKwg/woU+o8DCtOnccX6KmbBc7YrfqMYEYuaIcXHuhpT880QwNkZZ3wQwvtlDFA2yOw==} + peerDependencies: + '@types/react': '*' + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 17.0.53 + + /@mui/utils@5.11.9(react@17.0.2): + resolution: {integrity: sha512-eOJaqzcEs4qEwolcvFAmXGpln+uvouvOS9FUX6Wkrte+4I8rZbjODOBDVNlK+V6/ziTfD4iNKC0G+KfOTApbqg==} + engines: {node: '>=12.0.0'} + peerDependencies: + react: ^17.0.0 || ^18.0.0 + dependencies: + '@babel/runtime': 7.21.5 + '@types/prop-types': 15.7.5 + '@types/react-is': 17.0.3 + prop-types: 15.8.1 + react: 17.0.2 + react-is: 18.2.0 + dev: true + + /@mui/utils@5.11.9(react@18.2.0): + resolution: {integrity: sha512-eOJaqzcEs4qEwolcvFAmXGpln+uvouvOS9FUX6Wkrte+4I8rZbjODOBDVNlK+V6/ziTfD4iNKC0G+KfOTApbqg==} + engines: {node: '>=12.0.0'} + peerDependencies: + react: ^17.0.0 || ^18.0.0 + dependencies: + '@babel/runtime': 7.21.5 + '@types/prop-types': 15.7.5 + '@types/react-is': 17.0.3 + prop-types: 15.8.1 + react: 18.2.0 + react-is: 18.2.0 + dev: false + + /@noble/hashes@1.2.0: + resolution: {integrity: sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ==} + + /@noble/secp256k1@1.7.1: + resolution: {integrity: sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==} + + /@nodelib/fs.scandir@2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + /@nodelib/fs.stat@2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + /@nodelib/fs.walk@1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.15.0 + + /@normalizex/ethjs-unit@0.1.8: + resolution: {integrity: sha512-oAh+RS0x/0vRtSVxvhHxt+RrYayH1znj3w1096Vc2pw+eAuYHB4ePU9IYVGu4doz/qHuyaTzaQ73hgWFEw+jUg==} + engines: {node: '>=6.5.0', npm: '>=3'} + dependencies: + bn.js: 4.11.6 + dev: false + + /@pkgr/utils@2.3.1: + resolution: {integrity: sha512-wfzX8kc1PMyUILA+1Z/EqoE4UCXGy0iRGMhPwdfae1+f0OXlLqCk+By+aMzgJBzR9AzS4CDizioG6Ss1gvAFJw==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + dependencies: + cross-spawn: 7.0.3 + is-glob: 4.0.3 + open: 8.4.1 + picocolors: 1.0.0 + tiny-glob: 0.2.9 + tslib: 2.5.0 + dev: true + + /@popperjs/core@2.11.6: + resolution: {integrity: sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==} + + /@portis/web3-provider-engine@1.1.2(@babel/core@7.20.12): + resolution: {integrity: sha512-NiiF0UPfngf4ulo32ybEDAMaad4i7h44HJaN8ea8HHt/vaFiUcPtINjC2o21jhWaLANerW4ZbOrNs1iCLH4p6A==} + dependencies: + async: 2.6.4 + backoff: 2.5.0 + clone: 2.1.2 + cross-fetch: 2.2.6 + eth-block-tracker: 4.4.3(@babel/core@7.20.12) + eth-json-rpc-filters: 4.2.2 + eth-json-rpc-infura: 3.2.1 + eth-json-rpc-middleware: 5.1.0 + eth-sig-util: 2.5.3 + ethereumjs-block: 1.7.1 + ethereumjs-tx: 1.3.7 + ethereumjs-util: 5.2.0 + ethereumjs-vm: 2.6.0 + json-rpc-error: 2.0.0 + json-stable-stringify: 1.0.2 + promise-to-callback: 1.0.0 + readable-stream: 2.3.8 + request: 2.88.2 + semaphore: 1.1.0 + ws: 5.2.3 + xhr: 2.6.0 + xtend: 4.0.2 + transitivePeerDependencies: + - '@babel/core' + - bufferutil + - encoding + - supports-color + - utf-8-validate + dev: false + + /@portis/web3@2.0.0-beta.59(@babel/core@7.20.12): + resolution: {integrity: sha512-QdIdrI3uK+TyT+dxRK5bEYOi2PBlUDJ7vszR2uu0bT49wy7O52B9td6fL/5gsfk0VpCsmrYov3x3gEQYwGUyvQ==} + dependencies: + '@portis/web3-provider-engine': 1.1.2(@babel/core@7.20.12) + ethereumjs-util: 5.2.0 + penpal: 3.0.7 + pocket-js-core: 0.0.3 + transitivePeerDependencies: + - '@babel/core' + - bufferutil + - encoding + - supports-color + - utf-8-validate + dev: false + + /@remix-run/router@1.3.3: + resolution: {integrity: sha512-YRHie1yQEj0kqqCTCJEfHqYSSNlZQ696QJG+MMiW4mxSl9I0ojz/eRhJS4fs88Z5i6D1SmoF9d3K99/QOhI8/w==} + engines: {node: '>=14'} + dev: false + + /@rollup/pluginutils@5.0.2: + resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@types/estree': 1.0.0 + estree-walker: 2.0.2 + picomatch: 2.3.1 + dev: true + + /@rushstack/node-core-library@3.55.2: + resolution: {integrity: sha512-SaLe/x/Q/uBVdNFK5V1xXvsVps0y7h1sN7aSJllQyFbugyOaxhNRF25bwEDnicARNEjJw0pk0lYnJQ9Kr6ev0A==} + peerDependencies: + '@types/node': '*' + peerDependenciesMeta: + '@types/node': + optional: true + dependencies: + colors: 1.2.5 + fs-extra: 7.0.1 + import-lazy: 4.0.0 + jju: 1.4.0 + resolve: 1.22.1 + semver: 7.3.8 + z-schema: 5.0.5 + dev: true + + /@rushstack/node-core-library@3.55.2(@types/node@18.13.0): + resolution: {integrity: sha512-SaLe/x/Q/uBVdNFK5V1xXvsVps0y7h1sN7aSJllQyFbugyOaxhNRF25bwEDnicARNEjJw0pk0lYnJQ9Kr6ev0A==} + peerDependencies: + '@types/node': '*' + peerDependenciesMeta: + '@types/node': + optional: true + dependencies: + '@types/node': 18.13.0 + colors: 1.2.5 + fs-extra: 7.0.1 + import-lazy: 4.0.0 + jju: 1.4.0 + resolve: 1.22.1 + semver: 7.3.8 + z-schema: 5.0.5 + dev: true + + /@rushstack/node-core-library@3.55.2(@types/node@18.15.3): + resolution: {integrity: sha512-SaLe/x/Q/uBVdNFK5V1xXvsVps0y7h1sN7aSJllQyFbugyOaxhNRF25bwEDnicARNEjJw0pk0lYnJQ9Kr6ev0A==} + peerDependencies: + '@types/node': '*' + peerDependenciesMeta: + '@types/node': + optional: true + dependencies: + '@types/node': 18.15.3 + colors: 1.2.5 + fs-extra: 7.0.1 + import-lazy: 4.0.0 + jju: 1.4.0 + resolve: 1.22.1 + semver: 7.3.8 + z-schema: 5.0.5 + dev: true + + /@rushstack/rig-package@0.3.18: + resolution: {integrity: sha512-SGEwNTwNq9bI3pkdd01yCaH+gAsHqs0uxfGvtw9b0LJXH52qooWXnrFTRRLG1aL9pf+M2CARdrA9HLHJys3jiQ==} + dependencies: + resolve: 1.22.1 + strip-json-comments: 3.1.1 + dev: true + + /@rushstack/ts-command-line@4.13.2: + resolution: {integrity: sha512-bCU8qoL9HyWiciltfzg7GqdfODUeda/JpI0602kbN5YH22rzTxyqYvv7aRLENCM7XCQ1VRs7nMkEqgJUOU8Sag==} + dependencies: + '@types/argparse': 1.0.38 + argparse: 1.0.10 + colors: 1.2.5 + string-argv: 0.3.1 + dev: true + + /@scure/base@1.1.1: + resolution: {integrity: sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA==} + + /@scure/bip32@1.1.5: + resolution: {integrity: sha512-XyNh1rB0SkEqd3tXcXMi+Xe1fvg+kUIcoRIEujP1Jgv7DqW2r9lg3Ah0NkFaCs9sTkQAQA8kw7xiRXzENi9Rtw==} + dependencies: + '@noble/hashes': 1.2.0 + '@noble/secp256k1': 1.7.1 + '@scure/base': 1.1.1 + + /@scure/bip39@1.1.1: + resolution: {integrity: sha512-t+wDck2rVkh65Hmv280fYdVdY25J9YeEUIgn2LG1WM6gxFkGzcksoDiUkWVpVp3Oex9xGC68JU2dSbUfwZ2jPg==} + dependencies: + '@noble/hashes': 1.2.0 + '@scure/base': 1.1.1 + + /@sindresorhus/is@0.14.0: + resolution: {integrity: sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==} + engines: {node: '>=6'} + dev: false + optional: true + + /@sindresorhus/is@4.6.0: + resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} + engines: {node: '>=10'} + + /@splitbee/web@0.3.0: + resolution: {integrity: sha512-jNPDKg0GQGa4jCaBc6JQsv0NHmBA80WCwZE49nFyhcbo32WF0GyqXeice7ZApy7OUHI16bAUAzm4MOQw3gvxfQ==} + dev: false + + /@starkware-industries/starkware-crypto-utils@0.0.2: + resolution: {integrity: sha512-A7OIIsoPeS1tyfNrd6DUAlR6aw28nRwjHwgCPoAZuOWJmSfwMYrKhinRWnUGzSsDh+g+dssxockroiOXalB+kg==} + dependencies: + bip39: 3.1.0 + bn.js: 4.12.0 + brorand: 1.1.0 + elliptic: 6.5.4 + enc-utils: 3.0.0 + ethereumjs-wallet: 1.0.2 + hash.js: 1.1.7 + hmac-drbg: 1.0.1 + inherits: 2.0.4 + js-sha3: 0.8.0 + minimalistic-assert: 1.0.1 + minimalistic-crypto-utils: 1.0.1 + dev: false + + /@svgr/babel-plugin-add-jsx-attribute@6.5.1(@babel/core@7.21.8): + resolution: {integrity: sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ==} + engines: {node: '>=10'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.8 + dev: true + + /@svgr/babel-plugin-remove-jsx-attribute@6.5.0(@babel/core@7.21.8): + resolution: {integrity: sha512-8zYdkym7qNyfXpWvu4yq46k41pyNM9SOstoWhKlm+IfdCE1DdnRKeMUPsWIEO/DEkaWxJ8T9esNdG3QwQ93jBA==} + engines: {node: '>=10'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.8 + dev: true + + /@svgr/babel-plugin-remove-jsx-empty-expression@6.5.0(@babel/core@7.21.8): + resolution: {integrity: sha512-NFdxMq3xA42Kb1UbzCVxplUc0iqSyM9X8kopImvFnB+uSDdzIHOdbs1op8ofAvVRtbg4oZiyRl3fTYeKcOe9Iw==} + engines: {node: '>=10'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.8 + dev: true + + /@svgr/babel-plugin-replace-jsx-attribute-value@6.5.1(@babel/core@7.21.8): + resolution: {integrity: sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg==} + engines: {node: '>=10'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.8 + dev: true + + /@svgr/babel-plugin-svg-dynamic-title@6.5.1(@babel/core@7.21.8): + resolution: {integrity: sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw==} + engines: {node: '>=10'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.8 + dev: true + + /@svgr/babel-plugin-svg-em-dimensions@6.5.1(@babel/core@7.21.8): + resolution: {integrity: sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA==} + engines: {node: '>=10'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.8 + dev: true + + /@svgr/babel-plugin-transform-react-native-svg@6.5.1(@babel/core@7.21.8): + resolution: {integrity: sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg==} + engines: {node: '>=10'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.8 + dev: true + + /@svgr/babel-plugin-transform-svg-component@6.5.1(@babel/core@7.21.8): + resolution: {integrity: sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ==} + engines: {node: '>=12'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.8 + dev: true + + /@svgr/babel-preset@6.5.1(@babel/core@7.21.8): + resolution: {integrity: sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw==} + engines: {node: '>=10'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.8 + '@svgr/babel-plugin-add-jsx-attribute': 6.5.1(@babel/core@7.21.8) + '@svgr/babel-plugin-remove-jsx-attribute': 6.5.0(@babel/core@7.21.8) + '@svgr/babel-plugin-remove-jsx-empty-expression': 6.5.0(@babel/core@7.21.8) + '@svgr/babel-plugin-replace-jsx-attribute-value': 6.5.1(@babel/core@7.21.8) + '@svgr/babel-plugin-svg-dynamic-title': 6.5.1(@babel/core@7.21.8) + '@svgr/babel-plugin-svg-em-dimensions': 6.5.1(@babel/core@7.21.8) + '@svgr/babel-plugin-transform-react-native-svg': 6.5.1(@babel/core@7.21.8) + '@svgr/babel-plugin-transform-svg-component': 6.5.1(@babel/core@7.21.8) + dev: true + + /@svgr/core@6.5.1: + resolution: {integrity: sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==} + engines: {node: '>=10'} + dependencies: + '@babel/core': 7.21.8 + '@svgr/babel-preset': 6.5.1(@babel/core@7.21.8) + '@svgr/plugin-jsx': 6.5.1(@svgr/core@6.5.1) + camelcase: 6.3.0 + cosmiconfig: 7.1.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@svgr/hast-util-to-babel-ast@6.5.1: + resolution: {integrity: sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw==} + engines: {node: '>=10'} + dependencies: + '@babel/types': 7.21.5 + entities: 4.4.0 + dev: true + + /@svgr/plugin-jsx@6.5.1(@svgr/core@6.5.1): + resolution: {integrity: sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw==} + engines: {node: '>=10'} + peerDependencies: + '@svgr/core': ^6.0.0 + dependencies: + '@babel/core': 7.21.8 + '@svgr/babel-preset': 6.5.1(@babel/core@7.21.8) + '@svgr/core': 6.5.1 + '@svgr/hast-util-to-babel-ast': 6.5.1 + svg-parser: 2.0.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@szmarczak/http-timer@1.1.2: + resolution: {integrity: sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==} + engines: {node: '>=6'} + dependencies: + defer-to-connect: 1.1.3 + dev: false + optional: true + + /@szmarczak/http-timer@4.0.6: + resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} + engines: {node: '>=10'} + dependencies: + defer-to-connect: 2.0.1 + + /@szmarczak/http-timer@5.0.1: + resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==} + engines: {node: '>=14.16'} + dependencies: + defer-to-connect: 2.0.1 + + /@tanstack/match-sorter-utils@8.7.6: + resolution: {integrity: sha512-2AMpRiA6QivHOUiBpQAVxjiHAA68Ei23ZUMNaRJrN6omWiSFLoYrxGcT6BXtuzp0Jw4h6HZCmGGIM/gbwebO2A==} + engines: {node: '>=12'} + dependencies: + remove-accents: 0.4.2 + dev: false + + /@tanstack/query-core@4.27.0: + resolution: {integrity: sha512-sm+QncWaPmM73IPwFlmWSKPqjdTXZeFf/7aEmWh00z7yl2FjqophPt0dE1EHW9P1giMC5rMviv7OUbSDmWzXXA==} + dev: false + + /@tanstack/react-query-devtools@4.28.0(@tanstack/react-query@4.28.0)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-1SnoMw1CWn8FdPEIHvlAzmMBX3heXJo11fyBtt+FzYAHj5yFC8P67Kpgi0HpLkY7SLnd6QK/7qFkpeH4AQbgZg==} + peerDependencies: + '@tanstack/react-query': 4.28.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + '@tanstack/match-sorter-utils': 8.7.6 + '@tanstack/react-query': 4.28.0(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + superjson: 1.12.2 + use-sync-external-store: 1.2.0(react@18.2.0) + dev: false + + /@tanstack/react-query@4.28.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-8cGBV5300RHlvYdS4ea+G1JcZIt5CIuprXYFnsWggkmGoC0b5JaqG0fIX3qwDL9PTNkKvG76NGThIWbpXivMrQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-native: '*' + peerDependenciesMeta: + react-dom: + optional: true + react-native: + optional: true + dependencies: + '@tanstack/query-core': 4.27.0 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + use-sync-external-store: 1.2.0(react@18.2.0) + dev: false + + /@toruslabs/http-helpers@3.2.0(@babel/runtime@7.21.5): + resolution: {integrity: sha512-fCfvBHfYzd7AyOYlBo7wihh5nj6+4Ik6V5+nI7H63oiKICjMlByTXSauTUa/qm2mjZJn/OmVYeV5guPIgxoW1w==} + engines: {node: '>=14.17.0', npm: '>=6.x'} + peerDependencies: + '@babel/runtime': ^7.x + '@sentry/types': ^7.x + peerDependenciesMeta: + '@sentry/types': + optional: true + dependencies: + '@babel/runtime': 7.21.5 + lodash.merge: 4.6.2 + loglevel: 1.8.1 + dev: false + + /@toruslabs/openlogin-jrpc@2.13.0(@babel/runtime@7.21.5): + resolution: {integrity: sha512-TEg50/84xSocHLb3MEtw0DaIa+bXU66TJJjjDrqGPjoRo97fn8F8jDW2AcVV+eug39xpfxPIw1FFdCtgunmz7w==} + peerDependencies: + '@babel/runtime': 7.x + dependencies: + '@babel/runtime': 7.21.5 + '@toruslabs/openlogin-utils': 2.13.0(@babel/runtime@7.21.5) + end-of-stream: 1.4.4 + eth-rpc-errors: 4.0.3 + events: 3.3.0 + fast-safe-stringify: 2.1.1 + once: 1.4.0 + pump: 3.0.0 + readable-stream: 3.6.0 + dev: false + + /@toruslabs/openlogin-utils@2.13.0(@babel/runtime@7.21.5): + resolution: {integrity: sha512-g4pj6hIdKcuyetVsUWqiAJmCooTS9hOADL31m7LTqgdXzX9oR437A+c8Dw8gzFVcHmkK16Yt2//GvlKnSsGILg==} + peerDependencies: + '@babel/runtime': 7.x + dependencies: + '@babel/runtime': 7.21.5 + base64url: 3.0.1 + keccak: 3.0.3 + randombytes: 2.1.0 + dev: false + + /@toruslabs/torus-embed@1.40.0(@babel/runtime@7.21.5): + resolution: {integrity: sha512-e2xnsPPS4y2yL10k59vTeeyKZvJhl36odAby0HCGAegA1hg8M2MgnEVdn7FAPniGxx+wOzLeXfn1VoV5mIqS/Q==} + engines: {node: '>=14.17.0', npm: '>=6.x'} + peerDependencies: + '@babel/runtime': 7.x + dependencies: + '@babel/runtime': 7.21.5 + '@metamask/obs-store': 7.0.0 + '@toruslabs/http-helpers': 3.2.0(@babel/runtime@7.21.5) + '@toruslabs/openlogin-jrpc': 2.13.0(@babel/runtime@7.21.5) + create-hash: 1.2.0 + end-of-stream: 1.4.4 + eth-rpc-errors: 4.0.3 + events: 3.3.0 + fast-deep-equal: 3.1.3 + is-stream: 2.0.1 + lodash.merge: 4.6.2 + loglevel: 1.8.1 + once: 1.4.0 + pump: 3.0.0 + transitivePeerDependencies: + - '@sentry/types' + dev: false + + /@trivago/prettier-plugin-sort-imports@4.1.1(prettier@2.8.4): + resolution: {integrity: sha512-dQ2r2uzNr1x6pJsuh/8x0IRA3CBUB+pWEW3J/7N98axqt7SQSm+2fy0FLNXvXGg77xEDC7KHxJlHfLYyi7PDcw==} + peerDependencies: + '@vue/compiler-sfc': 3.x + prettier: 2.x + peerDependenciesMeta: + '@vue/compiler-sfc': + optional: true + dependencies: + '@babel/generator': 7.17.7 + '@babel/parser': 7.20.15 + '@babel/traverse': 7.17.3 + '@babel/types': 7.17.0 + javascript-natural-sort: 0.7.1 + lodash: 4.17.21 + prettier: 2.8.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@ts-morph/common@0.18.1: + resolution: {integrity: sha512-RVE+zSRICWRsfrkAw5qCAK+4ZH9kwEFv5h0+/YeHTLieWP7F4wWq4JsKFuNWG+fYh/KF+8rAtgdj5zb2mm+DVA==} + dependencies: + fast-glob: 3.2.12 + minimatch: 5.1.6 + mkdirp: 1.0.4 + path-browserify: 1.0.1 + dev: true + + /@ts-morph/common@0.19.0: + resolution: {integrity: sha512-Unz/WHmd4pGax91rdIKWi51wnVUW11QttMEPpBiBgIewnc9UQIX7UDLxr5vRlqeByXCwhkF6VabSsI0raWcyAQ==} + dependencies: + fast-glob: 3.2.12 + minimatch: 7.4.6 + mkdirp: 2.1.6 + path-browserify: 1.0.1 + dev: true + + /@types/argparse@1.0.38: + resolution: {integrity: sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==} + dev: true + + /@types/bn.js@4.11.6: + resolution: {integrity: sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==} + dependencies: + '@types/node': 18.15.3 + dev: false + + /@types/bn.js@5.1.1: + resolution: {integrity: sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g==} + dependencies: + '@types/node': 18.15.3 + + /@types/body-parser@1.19.2: + resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==} + dependencies: + '@types/connect': 3.4.35 + '@types/node': 18.15.3 + dev: true + + /@types/cacheable-request@6.0.3: + resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==} + dependencies: + '@types/http-cache-semantics': 4.0.1 + '@types/keyv': 3.1.4 + '@types/node': 18.15.3 + '@types/responselike': 1.0.0 + + /@types/connect@3.4.35: + resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==} + dependencies: + '@types/node': 18.15.3 + dev: true + + /@types/estree@0.0.39: + resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==} + dev: false + + /@types/estree@1.0.0: + resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==} + dev: true + + /@types/ethereum-protocol@1.0.2: + resolution: {integrity: sha512-Ri/hwt4UckZlF7eqhhAQcXsNvcgQmSJOKZteLco1/5NsRcneW/cJuQcrQNILN2Ohs9WUQjeGW3ZRRNqkEVMzuQ==} + dependencies: + bignumber.js: 7.2.1 + dev: false + + /@types/express-serve-static-core@4.17.33: + resolution: {integrity: sha512-TPBqmR/HRYI3eC2E5hmiivIzv+bidAfXofM+sbonAGvyDhySGw9/PQZFt2BLOrjUUR++4eJVpx6KnLQK1Fk9tA==} + dependencies: + '@types/node': 18.15.3 + '@types/qs': 6.9.7 + '@types/range-parser': 1.2.4 + dev: true + + /@types/express@4.17.17: + resolution: {integrity: sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==} + dependencies: + '@types/body-parser': 1.19.2 + '@types/express-serve-static-core': 4.17.33 + '@types/qs': 6.9.7 + '@types/serve-static': 1.15.1 + dev: true + + /@types/hdkey@0.7.1: + resolution: {integrity: sha512-4Kkr06hq+R8a9EzVNqXGOY2x1xA7dhY6qlp6OvaZ+IJy1BCca1Cv126RD9X7CMJoXoLo8WvAizy8gQHpqW6K0Q==} + dependencies: + '@types/node': 18.15.3 + dev: false + + /@types/http-cache-semantics@4.0.1: + resolution: {integrity: sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==} + + /@types/is-ci@3.0.0: + resolution: {integrity: sha512-Q0Op0hdWbYd1iahB+IFNQcWXFq4O0Q5MwQP7uN0souuQ4rPg1vEYcnIOfr1gY+M+6rc8FGoRaBO1mOOvL29sEQ==} + dependencies: + ci-info: 3.7.1 + dev: true + + /@types/json-schema@7.0.11: + resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} + dev: true + + /@types/json5@0.0.29: + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + dev: true + + /@types/keyv@3.1.4: + resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} + dependencies: + '@types/node': 18.15.3 + + /@types/mime@3.0.1: + resolution: {integrity: sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==} + dev: true + + /@types/minimist@1.2.2: + resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} + dev: true + + /@types/mocha@10.0.1: + resolution: {integrity: sha512-/fvYntiO1GeICvqbQ3doGDIP97vWmvFt83GKguJ6prmQM2iXZfFcq6YE8KteFyRtX2/h5Hf91BYvPodJKFYv5Q==} + dev: true + + /@types/node@12.20.55: + resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} + + /@types/node@18.13.0: + resolution: {integrity: sha512-gC3TazRzGoOnoKAhUx+Q0t8S9Tzs74z7m0ipwGpSqQrleP14hKxP4/JUeEQcD3W1/aIpnWl8pHowI7WokuZpXg==} + dev: true + + /@types/node@18.14.2: + resolution: {integrity: sha512-1uEQxww3DaghA0RxqHx0O0ppVlo43pJhepY51OxuQIKHpjbnYLA7vcdwioNPzIqmC2u3I/dmylcqjlh0e7AyUA==} + dev: true + + /@types/node@18.15.3: + resolution: {integrity: sha512-p6ua9zBxz5otCmbpb5D3U4B5Nanw6Pk3PPyX05xnxbB/fRv71N7CPmORg7uAD5P70T0xmx1pzAx/FUfa5X+3cw==} + + /@types/normalize-package-data@2.4.1: + resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} + dev: true + + /@types/parse-json@4.0.0: + resolution: {integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==} + + /@types/pbkdf2@3.1.0: + resolution: {integrity: sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==} + dependencies: + '@types/node': 18.15.3 + + /@types/prop-types@15.7.5: + resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} + + /@types/qs@6.9.7: + resolution: {integrity: sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==} + dev: true + + /@types/range-parser@1.2.4: + resolution: {integrity: sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==} + dev: true + + /@types/react-dom@17.0.19: + resolution: {integrity: sha512-PiYG40pnQRdPHnlf7tZnp0aQ6q9tspYr72vD61saO6zFCybLfMqwUCN0va1/P+86DXn18ZWeW30Bk7xlC5eEAQ==} + dependencies: + '@types/react': 17.0.53 + dev: true + + /@types/react-is@17.0.3: + resolution: {integrity: sha512-aBTIWg1emtu95bLTLx0cpkxwGW3ueZv71nE2YFBpL8k/z5czEW8yYpOo8Dp+UUAFAtKwNaOsh/ioSeQnWlZcfw==} + dependencies: + '@types/react': 18.2.6 + + /@types/react-transition-group@4.4.5: + resolution: {integrity: sha512-juKD/eiSM3/xZYzjuzH6ZwpP+/lejltmiS3QEzV/vmb/Q8+HfDmxu+Baga8UEMGBqV88Nbg4l2hY/K2DkyaLLA==} + dependencies: + '@types/react': 18.2.6 + + /@types/react@17.0.53: + resolution: {integrity: sha512-1yIpQR2zdYu1Z/dc1OxC+MA6GR240u3gcnP4l6mvj/PJiVaqHsQPmWttsvHsfnhfPbU2FuGmo0wSITPygjBmsw==} + dependencies: + '@types/prop-types': 15.7.5 + '@types/scheduler': 0.16.2 + csstype: 3.1.1 + + /@types/react@18.2.6: + resolution: {integrity: sha512-wRZClXn//zxCFW+ye/D2qY65UsYP1Fpex2YXorHc8awoNamkMZSvBxwxdYVInsHOZZd2Ppq8isnSzJL5Mpf8OA==} + dependencies: + '@types/prop-types': 15.7.5 + '@types/scheduler': 0.16.2 + csstype: 3.1.1 + + /@types/responselike@1.0.0: + resolution: {integrity: sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==} + dependencies: + '@types/node': 18.15.3 + + /@types/scheduler@0.16.2: + resolution: {integrity: sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==} + + /@types/secp256k1@4.0.3: + resolution: {integrity: sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==} + dependencies: + '@types/node': 18.15.3 + + /@types/semver@6.2.3: + resolution: {integrity: sha512-KQf+QAMWKMrtBMsB8/24w53tEsxllMj6TuA80TT/5igJalLI/zm0L3oXRbIAl4Ohfc85gyHX/jhMwsVkmhLU4A==} + dev: true + + /@types/semver@7.3.13: + resolution: {integrity: sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==} + dev: true + + /@types/serve-static@1.15.1: + resolution: {integrity: sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ==} + dependencies: + '@types/mime': 3.0.1 + '@types/node': 18.15.3 + dev: true + + /@types/ua-parser-js@0.7.36: + resolution: {integrity: sha512-N1rW+njavs70y2cApeIw1vLMYXRwfBy+7trgavGuuTfOd7j1Yh7QTRc/yqsPl6ncokt72ZXuxEU0PiCp9bSwNQ==} + dev: true + + /@types/uuid@8.3.4: + resolution: {integrity: sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==} + dev: true + + /@types/web3-provider-engine@14.0.1: + resolution: {integrity: sha512-SaAfLJY/40wKFDsNFwaNfwqFSL6kVhTx9JD18qM+Gaw1qdAXLYF/6E7TIqWEdoG4so6fki/zxURP5NsoCePYJw==} + dependencies: + '@types/ethereum-protocol': 1.0.2 + dev: false + + /@typescript-eslint/eslint-plugin@5.52.0(@typescript-eslint/parser@5.52.0)(eslint@8.34.0)(typescript@4.9.5): + resolution: {integrity: sha512-lHazYdvYVsBokwCdKOppvYJKaJ4S41CgKBcPvyd0xjZNbvQdhn/pnJlGtQksQ/NhInzdaeaSarlBjDXHuclEbg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + '@typescript-eslint/parser': ^5.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/parser': 5.52.0(eslint@8.34.0)(typescript@4.9.5) + '@typescript-eslint/scope-manager': 5.52.0 + '@typescript-eslint/type-utils': 5.52.0(eslint@8.34.0)(typescript@4.9.5) + '@typescript-eslint/utils': 5.52.0(eslint@8.34.0)(typescript@4.9.5) + debug: 4.3.4 + eslint: 8.34.0 + grapheme-splitter: 1.0.4 + ignore: 5.2.4 + natural-compare-lite: 1.4.0 + regexpp: 3.2.0 + semver: 7.3.8 + tsutils: 3.21.0(typescript@4.9.5) + typescript: 4.9.5 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/parser@4.33.0(eslint@8.34.0)(typescript@4.9.5): + resolution: {integrity: sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA==} + engines: {node: ^10.12.0 || >=12.0.0} + peerDependencies: + eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 4.33.0 + '@typescript-eslint/types': 4.33.0 + '@typescript-eslint/typescript-estree': 4.33.0(typescript@4.9.5) + debug: 4.3.4 + eslint: 8.34.0 + typescript: 4.9.5 + transitivePeerDependencies: + - supports-color + dev: false + + /@typescript-eslint/parser@5.52.0(eslint@8.34.0)(typescript@4.9.5): + resolution: {integrity: sha512-e2KiLQOZRo4Y0D/b+3y08i3jsekoSkOYStROYmPUnGMEoA0h+k2qOH5H6tcjIc68WDvGwH+PaOrP1XRzLJ6QlA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 5.52.0 + '@typescript-eslint/types': 5.52.0 + '@typescript-eslint/typescript-estree': 5.52.0(typescript@4.9.5) + debug: 4.3.4 + eslint: 8.34.0 + typescript: 4.9.5 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/scope-manager@4.33.0: + resolution: {integrity: sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ==} + engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} + dependencies: + '@typescript-eslint/types': 4.33.0 + '@typescript-eslint/visitor-keys': 4.33.0 + dev: false + + /@typescript-eslint/scope-manager@5.52.0: + resolution: {integrity: sha512-AR7sxxfBKiNV0FWBSARxM8DmNxrwgnYMPwmpkC1Pl1n+eT8/I2NAUPuwDy/FmDcC6F8pBfmOcaxcxRHspgOBMw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.52.0 + '@typescript-eslint/visitor-keys': 5.52.0 + dev: true + + /@typescript-eslint/type-utils@5.52.0(eslint@8.34.0)(typescript@4.9.5): + resolution: {integrity: sha512-tEKuUHfDOv852QGlpPtB3lHOoig5pyFQN/cUiZtpw99D93nEBjexRLre5sQZlkMoHry/lZr8qDAt2oAHLKA6Jw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '*' + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/typescript-estree': 5.52.0(typescript@4.9.5) + '@typescript-eslint/utils': 5.52.0(eslint@8.34.0)(typescript@4.9.5) + debug: 4.3.4 + eslint: 8.34.0 + tsutils: 3.21.0(typescript@4.9.5) + typescript: 4.9.5 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/types@4.33.0: + resolution: {integrity: sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==} + engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} + dev: false + + /@typescript-eslint/types@5.52.0: + resolution: {integrity: sha512-oV7XU4CHYfBhk78fS7tkum+/Dpgsfi91IIDy7fjCyq2k6KB63M6gMC0YIvy+iABzmXThCRI6xpCEyVObBdWSDQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /@typescript-eslint/typescript-estree@4.33.0(typescript@4.9.5): + resolution: {integrity: sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==} + engines: {node: ^10.12.0 || >=12.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 4.33.0 + '@typescript-eslint/visitor-keys': 4.33.0 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.3.8 + tsutils: 3.21.0(typescript@4.9.5) + typescript: 4.9.5 + transitivePeerDependencies: + - supports-color + dev: false + + /@typescript-eslint/typescript-estree@5.52.0(typescript@4.9.5): + resolution: {integrity: sha512-WeWnjanyEwt6+fVrSR0MYgEpUAuROxuAH516WPjUblIrClzYJj0kBbjdnbQXLpgAN8qbEuGywiQsXUVDiAoEuQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 5.52.0 + '@typescript-eslint/visitor-keys': 5.52.0 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.3.8 + tsutils: 3.21.0(typescript@4.9.5) + typescript: 4.9.5 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/utils@5.52.0(eslint@8.34.0)(typescript@4.9.5): + resolution: {integrity: sha512-As3lChhrbwWQLNk2HC8Ree96hldKIqk98EYvypd3It8Q1f8d5zWyIoaZEp2va5667M4ZyE7X8UUR+azXrFl+NA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + '@types/json-schema': 7.0.11 + '@types/semver': 7.3.13 + '@typescript-eslint/scope-manager': 5.52.0 + '@typescript-eslint/types': 5.52.0 + '@typescript-eslint/typescript-estree': 5.52.0(typescript@4.9.5) + eslint: 8.34.0 + eslint-scope: 5.1.1 + eslint-utils: 3.0.0(eslint@8.34.0) + semver: 7.3.8 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@typescript-eslint/visitor-keys@4.33.0: + resolution: {integrity: sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==} + engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} + dependencies: + '@typescript-eslint/types': 4.33.0 + eslint-visitor-keys: 2.1.0 + dev: false + + /@typescript-eslint/visitor-keys@5.52.0: + resolution: {integrity: sha512-qMwpw6SU5VHCPr99y274xhbm+PRViK/NATY6qzt+Et7+mThGuFSl/ompj2/hrBlRP/kq+BFdgagnOSgw9TB0eA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.52.0 + eslint-visitor-keys: 3.4.1 + dev: true + + /@vitejs/plugin-react@3.1.0(vite@4.1.2): + resolution: {integrity: sha512-AfgcRL8ZBhAlc3BFdigClmTUMISmmzHn7sB2h9U1odvc5U/MjWXsAaz18b/WoppUTDBzxOJwo2VdClfUcItu9g==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^4.1.0-beta.0 + dependencies: + '@babel/core': 7.20.12 + '@babel/plugin-transform-react-jsx-self': 7.18.6(@babel/core@7.20.12) + '@babel/plugin-transform-react-jsx-source': 7.19.6(@babel/core@7.20.12) + magic-string: 0.27.0 + react-refresh: 0.14.0 + vite: 4.1.2(sass@1.58.3) + transitivePeerDependencies: + - supports-color + dev: true + + /@walletconnect/browser-utils@1.8.0: + resolution: {integrity: sha512-Wcqqx+wjxIo9fv6eBUFHPsW1y/bGWWRboni5dfD8PtOmrihrEpOCmvRJe4rfl7xgJW8Ea9UqKEaq0bIRLHlK4A==} + dependencies: + '@walletconnect/safe-json': 1.0.0 + '@walletconnect/types': 1.8.0 + '@walletconnect/window-getters': 1.0.0 + '@walletconnect/window-metadata': 1.0.0 + detect-browser: 5.2.0 + dev: false + + /@walletconnect/client@1.8.0: + resolution: {integrity: sha512-svyBQ14NHx6Cs2j4TpkQaBI/2AF4+LXz64FojTjMtV4VMMhl81jSO1vNeg+yYhQzvjcGH/GpSwixjyCW0xFBOQ==} + deprecated: 'WalletConnect''s v1 SDKs are now deprecated. Please upgrade to a v2 SDK. For details see: https://docs.walletconnect.com/' + dependencies: + '@walletconnect/core': 1.8.0 + '@walletconnect/iso-crypto': 1.8.0 + '@walletconnect/types': 1.8.0 + '@walletconnect/utils': 1.8.0 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + dev: false + + /@walletconnect/core@1.8.0: + resolution: {integrity: sha512-aFTHvEEbXcZ8XdWBw6rpQDte41Rxwnuk3SgTD8/iKGSRTni50gI9S3YEzMj05jozSiOBxQci4pJDMVhIUMtarw==} + dependencies: + '@walletconnect/socket-transport': 1.8.0 + '@walletconnect/types': 1.8.0 + '@walletconnect/utils': 1.8.0 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + dev: false + + /@walletconnect/crypto@1.0.3: + resolution: {integrity: sha512-+2jdORD7XQs76I2Odgr3wwrtyuLUXD/kprNVsjWRhhhdO9Mt6WqVzOPu0/t7OHSmgal8k7SoBQzUc5hu/8zL/g==} + dependencies: + '@walletconnect/encoding': 1.0.2 + '@walletconnect/environment': 1.0.1 + '@walletconnect/randombytes': 1.0.3 + aes-js: 3.1.2 + hash.js: 1.1.7 + tslib: 1.14.1 + dev: false + + /@walletconnect/encoding@1.0.2: + resolution: {integrity: sha512-CrwSBrjqJ7rpGQcTL3kU+Ief+Bcuu9PH6JLOb+wM6NITX1GTxR/MfNwnQfhLKK6xpRAyj2/nM04OOH6wS8Imag==} + dependencies: + is-typedarray: 1.0.0 + tslib: 1.14.1 + typedarray-to-buffer: 3.1.5 + dev: false + + /@walletconnect/environment@1.0.1: + resolution: {integrity: sha512-T426LLZtHj8e8rYnKfzsw1aG6+M0BT1ZxayMdv/p8yM0MU+eJDISqNY3/bccxRr4LrF9csq02Rhqt08Ibl0VRg==} + dependencies: + tslib: 1.14.1 + dev: false + + /@walletconnect/http-connection@1.8.0: + resolution: {integrity: sha512-IziEr3c53qsMromK7jz0EkbKDHlryRbxXdFR+xaG+S5nfxtUdAfjzlZabvczXdDCgmTij6KbNsZAjBMqCBzACw==} + dependencies: + '@walletconnect/types': 1.8.0 + '@walletconnect/utils': 1.8.0 + eventemitter3: 4.0.7 + xhr2-cookies: 1.1.0 + dev: false + + /@walletconnect/iso-crypto@1.8.0: + resolution: {integrity: sha512-pWy19KCyitpfXb70hA73r9FcvklS+FvO9QUIttp3c2mfW8frxgYeRXfxLRCIQTkaYueRKvdqPjbyhPLam508XQ==} + dependencies: + '@walletconnect/crypto': 1.0.3 + '@walletconnect/types': 1.8.0 + '@walletconnect/utils': 1.8.0 + dev: false + + /@walletconnect/jsonrpc-types@1.0.2: + resolution: {integrity: sha512-CZe8tjJX73OWdHjrBHy7HtAapJ2tT0Q3TYhPBhRxi3643lwPIQWC9En45ldY14TZwgSewkbZ0FtGBZK0G7Bbyg==} + dependencies: + keyvaluestorage-interface: 1.0.0 + tslib: 1.14.1 + dev: false + + /@walletconnect/jsonrpc-utils@1.0.6: + resolution: {integrity: sha512-snp0tfkjPiDLQp/jrBewI+9SM33GPV4+Gjgldod6XQ7rFyQ5FZjnBxUkY4xWH0+arNxzQSi6v5iDXjCjSaorpg==} + dependencies: + '@walletconnect/environment': 1.0.1 + '@walletconnect/jsonrpc-types': 1.0.2 + tslib: 1.14.1 + dev: false + + /@walletconnect/mobile-registry@1.4.0: + resolution: {integrity: sha512-ZtKRio4uCZ1JUF7LIdecmZt7FOLnX72RPSY7aUVu7mj7CSfxDwUn6gBuK6WGtH+NZCldBqDl5DenI5fFSvkKYw==} + deprecated: 'Deprecated in favor of dynamic registry available from: https://github.com/walletconnect/walletconnect-registry' + dev: false + + /@walletconnect/qrcode-modal@1.8.0: + resolution: {integrity: sha512-BueaFefaAi8mawE45eUtztg3ZFbsAH4DDXh1UNwdUlsvFMjqcYzLUG0xZvDd6z2eOpbgDg2N3bl6gF0KONj1dg==} + deprecated: 'WalletConnect''s v1 SDKs are now deprecated. Please upgrade to a v2 SDK. For details see: https://docs.walletconnect.com/' + dependencies: + '@walletconnect/browser-utils': 1.8.0 + '@walletconnect/mobile-registry': 1.4.0 + '@walletconnect/types': 1.8.0 + copy-to-clipboard: 3.3.3 + preact: 10.4.1 + qrcode: 1.4.4 + dev: false + + /@walletconnect/randombytes@1.0.3: + resolution: {integrity: sha512-35lpzxcHFbTN3ABefC9W+uBpNZl1GC4Wpx0ed30gibfO/y9oLdy1NznbV96HARQKSBV9J9M/rrtIvf6a23jfYw==} + dependencies: + '@walletconnect/encoding': 1.0.2 + '@walletconnect/environment': 1.0.1 + randombytes: 2.1.0 + tslib: 1.14.1 + dev: false + + /@walletconnect/safe-json@1.0.0: + resolution: {integrity: sha512-QJzp/S/86sUAgWY6eh5MKYmSfZaRpIlmCJdi5uG4DJlKkZrHEF7ye7gA+VtbVzvTtpM/gRwO2plQuiooIeXjfg==} + dev: false + + /@walletconnect/socket-transport@1.8.0: + resolution: {integrity: sha512-5DyIyWrzHXTcVp0Vd93zJ5XMW61iDM6bcWT4p8DTRfFsOtW46JquruMhxOLeCOieM4D73kcr3U7WtyR4JUsGuQ==} + dependencies: + '@walletconnect/types': 1.8.0 + '@walletconnect/utils': 1.8.0 + ws: 7.5.3 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + dev: false + + /@walletconnect/types@1.8.0: + resolution: {integrity: sha512-Cn+3I0V0vT9ghMuzh1KzZvCkiAxTq+1TR2eSqw5E5AVWfmCtECFkVZBP6uUJZ8YjwLqXheI+rnjqPy7sVM4Fyg==} + deprecated: 'WalletConnect''s v1 SDKs are now deprecated. Please upgrade to a v2 SDK. For details see: https://docs.walletconnect.com/' + dev: false + + /@walletconnect/utils@1.8.0: + resolution: {integrity: sha512-zExzp8Mj1YiAIBfKNm5u622oNw44WOESzo6hj+Q3apSMIb0Jph9X3GDIdbZmvVZsNPxWDL7uodKgZcCInZv2vA==} + dependencies: + '@walletconnect/browser-utils': 1.8.0 + '@walletconnect/encoding': 1.0.2 + '@walletconnect/jsonrpc-utils': 1.0.6 + '@walletconnect/types': 1.8.0 + bn.js: 4.11.8 + js-sha3: 0.8.0 + query-string: 6.13.5 + dev: false + + /@walletconnect/web3-provider@1.8.0(@babel/core@7.20.12): + resolution: {integrity: sha512-lqqEO0oRmCehH+c8ZPk3iH7I7YtbzmkWd58/Or2AgWAl869JamzndKCD3sTlNsPRQLxxPpraHQqzur7uclLWvg==} + deprecated: 'WalletConnect''s v1 SDKs are now deprecated. Please upgrade to a v2 SDK. For details see: https://docs.walletconnect.com/' + dependencies: + '@walletconnect/client': 1.8.0 + '@walletconnect/http-connection': 1.8.0 + '@walletconnect/qrcode-modal': 1.8.0 + '@walletconnect/types': 1.8.0 + '@walletconnect/utils': 1.8.0 + web3-provider-engine: 16.0.1(@babel/core@7.20.12) + transitivePeerDependencies: + - '@babel/core' + - bufferutil + - encoding + - supports-color + - utf-8-validate + dev: false + + /@walletconnect/window-getters@1.0.0: + resolution: {integrity: sha512-xB0SQsLaleIYIkSsl43vm8EwETpBzJ2gnzk7e0wMF3ktqiTGS6TFHxcprMl5R44KKh4tCcHCJwolMCaDSwtAaA==} + dev: false + + /@walletconnect/window-getters@1.0.1: + resolution: {integrity: sha512-vHp+HqzGxORPAN8gY03qnbTMnhqIwjeRJNOMOAzePRg4xVEEE2WvYsI9G2NMjOknA8hnuYbU3/hwLcKbjhc8+Q==} + dependencies: + tslib: 1.14.1 + dev: false + + /@walletconnect/window-metadata@1.0.0: + resolution: {integrity: sha512-9eFvmJxIKCC3YWOL97SgRkKhlyGXkrHwamfechmqszbypFspaSk+t2jQXAEU7YClHF6Qjw5eYOmy1//zFi9/GA==} + dependencies: + '@walletconnect/window-getters': 1.0.1 + dev: false + + /@web3-react/abstract-connector@6.0.7: + resolution: {integrity: sha512-RhQasA4Ox8CxUC0OENc1AJJm8UTybu/oOCM61Zjg6y0iF7Z0sqv1Ai1VdhC33hrQpA8qSBgoXN9PaP8jKmtdqg==} + dependencies: + '@web3-react/types': 6.0.7 + dev: false + + /@web3-react/core@6.1.9(react@18.2.0): + resolution: {integrity: sha512-P877DslsbAkWIlMANpWiK7pCvNwlz0kJC0EGckuVh0wlA23J4UnFxq6xyOaxkxaDCu14rA/tAO0NbwjcXTQgSA==} + peerDependencies: + react: '>=16.8' + dependencies: + '@ethersproject/keccak256': 5.7.0 + '@web3-react/abstract-connector': 6.0.7 + '@web3-react/types': 6.0.7 + react: 18.2.0 + tiny-invariant: 1.3.1 + tiny-warning: 1.0.3 + dev: false + + /@web3-react/fortmatic-connector@6.1.6: + resolution: {integrity: sha512-AKiEVvKlZPpRj5pADXyucl2FBt3ymf7PSsRhraHeI8hJCfCEACQ2+bq7okvJq9sNqaeUKukzwUYJmgBYn0qkYQ==} + dependencies: + '@web3-react/abstract-connector': 6.0.7 + '@web3-react/types': 6.0.7 + fortmatic: 1.1.3 + tiny-invariant: 1.3.1 + dev: false + + /@web3-react/frame-connector@6.0.9: + resolution: {integrity: sha512-SyEveo8XckEw+aIhT7A58OFtUgAVWM85PmJegoIaTAWBVTVlvXClTAnOUrDzH2Nu6nCoj2swNKHS2dePnux9Pw==} + dependencies: + '@web3-react/abstract-connector': 6.0.7 + '@web3-react/types': 6.0.7 + eth-provider: 0.2.5 + tiny-invariant: 1.3.1 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + dev: false + + /@web3-react/injected-connector@6.0.7: + resolution: {integrity: sha512-Y7aJSz6pg+MWKtvdyuqyy6LWuH+4Tqtph1LWfiyVms9II9ar/9B/de4R8wh4wjg91wmHkU+D75yP09E/Soh2RA==} + dependencies: + '@web3-react/abstract-connector': 6.0.7 + '@web3-react/types': 6.0.7 + tiny-warning: 1.0.3 + dev: false + + /@web3-react/ledger-connector@6.1.9: + resolution: {integrity: sha512-hcDif/TWIRhCbTU1kRfsqeSYmECpCx2Z42X1dA4opSx7DqO271HP6xRMEHQomxwEJiqzEy9oMcESU4Sfri+FGg==} + dependencies: + '@0x/subproviders': 5.0.4 + '@web3-react/abstract-connector': 6.0.7 + '@web3-react/types': 6.0.7 + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate + dev: false + + /@web3-react/portis-connector@6.1.6(@babel/core@7.20.12): + resolution: {integrity: sha512-c9qyPoGVG+wLKcIJGzVTDP6oZ/Wn+EbE2cVjeCDTR2opzOO6kJoG7SOZMLXIX1F9v/N6bB8NI6XWlDjROK8zMw==} + dependencies: + '@portis/web3': 2.0.0-beta.59(@babel/core@7.20.12) + '@web3-react/abstract-connector': 6.0.7 + '@web3-react/types': 6.0.7 + tiny-invariant: 1.3.1 + transitivePeerDependencies: + - '@babel/core' + - bufferutil + - encoding + - supports-color + - utf-8-validate + dev: false + + /@web3-react/torus-connector@6.1.7(@babel/runtime@7.21.5): + resolution: {integrity: sha512-zuirHlkcUuwkAyhCz1zBHbxiQ3627Zvw/MJyXGFVX5BSr9ywulFzEi2f+DOyDMMBZAxtSPs3VHB4xMTetUCkOg==} + dependencies: + '@toruslabs/torus-embed': 1.40.0(@babel/runtime@7.21.5) + '@web3-react/abstract-connector': 6.0.7 + '@web3-react/types': 6.0.7 + transitivePeerDependencies: + - '@babel/runtime' + - '@sentry/types' + dev: false + + /@web3-react/types@6.0.7: + resolution: {integrity: sha512-ofGmfDhxmNT1/P/MgVa8IKSkCStFiyvXe+U5tyZurKdrtTDFU+wJ/LxClPDtFerWpczNFPUSrKcuhfPX1sI6+A==} + dev: false + + /@web3-react/walletconnect-connector@6.2.4(@babel/core@7.20.12): + resolution: {integrity: sha512-IEVjCXrlcfVa6ggUBEyKtLRaLQuZGtT2lGuzOFtdbJJkN84u1++pzzeDrcsVhKAoS5wq33zyJT9baEbG1Aed8g==} + dependencies: + '@walletconnect/web3-provider': 1.8.0(@babel/core@7.20.12) + '@web3-react/abstract-connector': 6.0.7 + '@web3-react/types': 6.0.7 + tiny-invariant: 1.3.1 + transitivePeerDependencies: + - '@babel/core' + - bufferutil + - encoding + - supports-color + - utf-8-validate + dev: false + + /@web3-react/walletlink-connector@6.2.5(@babel/core@7.20.12): + resolution: {integrity: sha512-8Wx+4TqMPZw5kGzraxRLbsLA9mUOYxLJk8QvNzuuFQ8/YpHhL58mQGnHx30KReXTJpMG4TZGE4yCLp3Bd+jVfQ==} + dependencies: + '@web3-react/abstract-connector': 6.0.7 + '@web3-react/types': 6.0.7 + walletlink: 2.5.0(@babel/core@7.20.12) + transitivePeerDependencies: + - '@babel/core' + - encoding + - supports-color + dev: false + + /@yarnpkg/lockfile@1.1.0: + resolution: {integrity: sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==} + dev: false + + /abortcontroller-polyfill@1.7.5: + resolution: {integrity: sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ==} + + /abstract-leveldown@2.6.3: + resolution: {integrity: sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA==} + dependencies: + xtend: 4.0.2 + dev: false + + /abstract-leveldown@2.7.2: + resolution: {integrity: sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w==} + dependencies: + xtend: 4.0.2 + dev: false + + /abstract-leveldown@3.0.0: + resolution: {integrity: sha512-KUWx9UWGQD12zsmLNj64/pndaz4iJh/Pj7nopgkfDG6RlCcbMZvT6+9l7dchK4idog2Is8VdC/PvNbFuFmalIQ==} + engines: {node: '>=4'} + dependencies: + xtend: 4.0.2 + dev: false + + /abstract-leveldown@5.0.0: + resolution: {integrity: sha512-5mU5P1gXtsMIXg65/rsYGsi93+MlogXZ9FA8JnwKurHQg64bfXwGYVdVdijNTVNOlAsuIiOwHdvFFD5JqCJQ7A==} + engines: {node: '>=6'} + dependencies: + xtend: 4.0.2 + dev: false + + /accepts@1.3.8: + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + engines: {node: '>= 0.6'} + dependencies: + mime-types: 2.1.35 + negotiator: 0.6.3 + + /acorn-jsx@5.3.2(acorn@8.8.2): + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 8.8.2 + + /acorn@8.8.2: + resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==} + engines: {node: '>=0.4.0'} + hasBin: true + + /aes-js@3.0.0: + resolution: {integrity: sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==} + dev: false + + /aes-js@3.1.2: + resolution: {integrity: sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ==} + dev: false + + /ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + /ajv@8.12.0: + resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js: 4.4.1 + dev: true + + /ansi-colors@4.1.3: + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} + engines: {node: '>=6'} + dev: true + + /ansi-escapes@6.0.0: + resolution: {integrity: sha512-IG23inYII3dWlU2EyiAiGj6Bwal5GzsgPMwjYGvc1HPE2dgbj4ZB5ToWBKSquKw74nB3TIuOwaI6/jSULzfgrw==} + engines: {node: '>=14.16'} + dependencies: + type-fest: 3.6.1 + dev: true + + /ansi-regex@2.1.1: + resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==} + engines: {node: '>=0.10.0'} + dev: false + + /ansi-regex@3.0.1: + resolution: {integrity: sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==} + engines: {node: '>=4'} + dev: false + optional: true + + /ansi-regex@4.1.1: + resolution: {integrity: sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==} + engines: {node: '>=6'} + dev: false + + /ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + /ansi-sequence-parser@1.1.0: + resolution: {integrity: sha512-lEm8mt52to2fT8GhciPCGeCXACSz2UwIN4X2e2LJSnZ5uAbn2/dsYdOmUXq0AtWS5cpAupysIneExOgH0Vd2TQ==} + dev: true + + /ansi-styles@2.2.1: + resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==} + engines: {node: '>=0.10.0'} + dev: false + + /ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + dependencies: + color-convert: 1.9.3 + + /ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + dependencies: + color-convert: 2.0.1 + + /anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + dev: true + + /aproba@1.2.0: + resolution: {integrity: sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==} + dev: false + optional: true + + /are-we-there-yet@1.1.7: + resolution: {integrity: sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==} + dependencies: + delegates: 1.0.0 + readable-stream: 2.3.8 + dev: false + optional: true + + /argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + dependencies: + sprintf-js: 1.0.3 + dev: true + + /argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + /arr-diff@4.0.0: + resolution: {integrity: sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==} + engines: {node: '>=0.10.0'} + + /arr-flatten@1.1.0: + resolution: {integrity: sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==} + engines: {node: '>=0.10.0'} + + /arr-union@3.1.0: + resolution: {integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==} + engines: {node: '>=0.10.0'} + + /array-flatten@1.1.1: + resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} + + /array-includes@3.1.6: + resolution: {integrity: sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.21.1 + get-intrinsic: 1.2.0 + is-string: 1.0.7 + dev: true + + /array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + + /array-unique@0.3.2: + resolution: {integrity: sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==} + engines: {node: '>=0.10.0'} + + /array.prototype.flat@1.3.1: + resolution: {integrity: sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.21.1 + es-shim-unscopables: 1.0.0 + dev: true + + /array.prototype.flatmap@1.3.1: + resolution: {integrity: sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.21.1 + es-shim-unscopables: 1.0.0 + dev: true + + /array.prototype.reduce@1.0.5: + resolution: {integrity: sha512-kDdugMl7id9COE8R7MHF5jWk7Dqt/fs4Pv+JXoICnYwqpjjjbUurz6w5fT5IG6brLdJhv6/VoHB0H7oyIBXd+Q==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.21.1 + es-array-method-boxes-properly: 1.0.0 + is-string: 1.0.7 + dev: false + + /array.prototype.tosorted@1.1.1: + resolution: {integrity: sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.21.1 + es-shim-unscopables: 1.0.0 + get-intrinsic: 1.2.0 + dev: true + + /arrify@1.0.1: + resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} + engines: {node: '>=0.10.0'} + dev: true + + /asn1.js@5.4.1: + resolution: {integrity: sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==} + dependencies: + bn.js: 4.12.0 + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + safer-buffer: 2.1.2 + dev: false + optional: true + + /asn1@0.2.6: + resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} + dependencies: + safer-buffer: 2.1.2 + + /assert-plus@1.0.0: + resolution: {integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==} + engines: {node: '>=0.8'} + + /assign-symbols@1.0.0: + resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==} + engines: {node: '>=0.10.0'} + + /astral-regex@2.0.0: + resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} + engines: {node: '>=8'} + dev: true + + /async-eventemitter@0.2.4: + resolution: {integrity: sha512-pd20BwL7Yt1zwDFy+8MX8F1+WCT8aQeKj0kQnTrH9WaeRETlRamVhD0JtRPmrV4GfOJ2F9CvdQkZeZhnh2TuHw==} + dependencies: + async: 2.6.4 + dev: false + + /async-limiter@1.0.1: + resolution: {integrity: sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==} + + /async-mutex@0.2.6: + resolution: {integrity: sha512-Hs4R+4SPgamu6rSGW8C7cV9gaWUKEHykfzCCvIRuaVv636Ju10ZdeUbvb4TBEW0INuq2DHZqXbK4Nd3yG4RaRw==} + dependencies: + tslib: 2.5.0 + dev: false + + /async@1.5.2: + resolution: {integrity: sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==} + dev: false + + /async@2.6.2: + resolution: {integrity: sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==} + dependencies: + lodash: 4.17.21 + dev: false + + /async@2.6.4: + resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==} + dependencies: + lodash: 4.17.21 + dev: false + + /asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + + /atob@2.1.2: + resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==} + engines: {node: '>= 4.5.0'} + hasBin: true + + /available-typed-arrays@1.0.5: + resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} + engines: {node: '>= 0.4'} + + /aws-sign2@0.7.0: + resolution: {integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==} + + /aws4@1.12.0: + resolution: {integrity: sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==} + + /axios@0.18.1: + resolution: {integrity: sha512-0BfJq4NSfQXd+SkFdrvFbG7addhYSBA2mQwISr46pD6E5iqkWg02RAs8vyTT/j0RTnoYmeXauBuSv1qKwR179g==} + deprecated: Critical security vulnerability fixed in v0.21.1. For more information, see https://github.com/axios/axios/pull/3410 + dependencies: + follow-redirects: 1.5.10 + is-buffer: 2.0.5 + transitivePeerDependencies: + - supports-color + dev: false + + /axios@0.26.1: + resolution: {integrity: sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==} + dependencies: + follow-redirects: 1.15.2 + transitivePeerDependencies: + - debug + dev: false + + /babel-code-frame@6.26.0: + resolution: {integrity: sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g==} + dependencies: + chalk: 1.1.3 + esutils: 2.0.3 + js-tokens: 3.0.2 + dev: false + + /babel-core@6.26.3: + resolution: {integrity: sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==} + dependencies: + babel-code-frame: 6.26.0 + babel-generator: 6.26.1 + babel-helpers: 6.24.1 + babel-messages: 6.23.0 + babel-register: 6.26.0 + babel-runtime: 6.26.0 + babel-template: 6.26.0 + babel-traverse: 6.26.0 + babel-types: 6.26.0 + babylon: 6.18.0 + convert-source-map: 1.9.0 + debug: 2.6.9 + json5: 0.5.1 + lodash: 4.17.21 + minimatch: 3.1.2 + path-is-absolute: 1.0.1 + private: 0.1.8 + slash: 1.0.0 + source-map: 0.5.7 + transitivePeerDependencies: + - supports-color + dev: false + + /babel-generator@6.26.1: + resolution: {integrity: sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==} + dependencies: + babel-messages: 6.23.0 + babel-runtime: 6.26.0 + babel-types: 6.26.0 + detect-indent: 4.0.0 + jsesc: 1.3.0 + lodash: 4.17.21 + source-map: 0.5.7 + trim-right: 1.0.1 + dev: false + + /babel-helper-builder-binary-assignment-operator-visitor@6.24.1: + resolution: {integrity: sha512-gCtfYORSG1fUMX4kKraymq607FWgMWg+j42IFPc18kFQEsmtaibP4UrqsXt8FlEJle25HUd4tsoDR7H2wDhe9Q==} + dependencies: + babel-helper-explode-assignable-expression: 6.24.1 + babel-runtime: 6.26.0 + babel-types: 6.26.0 + transitivePeerDependencies: + - supports-color + dev: false + + /babel-helper-call-delegate@6.24.1: + resolution: {integrity: sha512-RL8n2NiEj+kKztlrVJM9JT1cXzzAdvWFh76xh/H1I4nKwunzE4INBXn8ieCZ+wh4zWszZk7NBS1s/8HR5jDkzQ==} + dependencies: + babel-helper-hoist-variables: 6.24.1 + babel-runtime: 6.26.0 + babel-traverse: 6.26.0 + babel-types: 6.26.0 + transitivePeerDependencies: + - supports-color + dev: false + + /babel-helper-define-map@6.26.0: + resolution: {integrity: sha512-bHkmjcC9lM1kmZcVpA5t2om2nzT/xiZpo6TJq7UlZ3wqKfzia4veeXbIhKvJXAMzhhEBd3cR1IElL5AenWEUpA==} + dependencies: + babel-helper-function-name: 6.24.1 + babel-runtime: 6.26.0 + babel-types: 6.26.0 + lodash: 4.17.21 + transitivePeerDependencies: + - supports-color + dev: false + + /babel-helper-explode-assignable-expression@6.24.1: + resolution: {integrity: sha512-qe5csbhbvq6ccry9G7tkXbzNtcDiH4r51rrPUbwwoTzZ18AqxWYRZT6AOmxrpxKnQBW0pYlBI/8vh73Z//78nQ==} + dependencies: + babel-runtime: 6.26.0 + babel-traverse: 6.26.0 + babel-types: 6.26.0 + transitivePeerDependencies: + - supports-color + dev: false + + /babel-helper-function-name@6.24.1: + resolution: {integrity: sha512-Oo6+e2iX+o9eVvJ9Y5eKL5iryeRdsIkwRYheCuhYdVHsdEQysbc2z2QkqCLIYnNxkT5Ss3ggrHdXiDI7Dhrn4Q==} + dependencies: + babel-helper-get-function-arity: 6.24.1 + babel-runtime: 6.26.0 + babel-template: 6.26.0 + babel-traverse: 6.26.0 + babel-types: 6.26.0 + transitivePeerDependencies: + - supports-color + dev: false + + /babel-helper-get-function-arity@6.24.1: + resolution: {integrity: sha512-WfgKFX6swFB1jS2vo+DwivRN4NB8XUdM3ij0Y1gnC21y1tdBoe6xjVnd7NSI6alv+gZXCtJqvrTeMW3fR/c0ng==} + dependencies: + babel-runtime: 6.26.0 + babel-types: 6.26.0 + dev: false + + /babel-helper-hoist-variables@6.24.1: + resolution: {integrity: sha512-zAYl3tqerLItvG5cKYw7f1SpvIxS9zi7ohyGHaI9cgDUjAT6YcY9jIEH5CstetP5wHIVSceXwNS7Z5BpJg+rOw==} + dependencies: + babel-runtime: 6.26.0 + babel-types: 6.26.0 + dev: false + + /babel-helper-optimise-call-expression@6.24.1: + resolution: {integrity: sha512-Op9IhEaxhbRT8MDXx2iNuMgciu2V8lDvYCNQbDGjdBNCjaMvyLf4wl4A3b8IgndCyQF8TwfgsQ8T3VD8aX1/pA==} + dependencies: + babel-runtime: 6.26.0 + babel-types: 6.26.0 + dev: false + + /babel-helper-regex@6.26.0: + resolution: {integrity: sha512-VlPiWmqmGJp0x0oK27Out1D+71nVVCTSdlbhIVoaBAj2lUgrNjBCRR9+llO4lTSb2O4r7PJg+RobRkhBrf6ofg==} + dependencies: + babel-runtime: 6.26.0 + babel-types: 6.26.0 + lodash: 4.17.21 + dev: false + + /babel-helper-remap-async-to-generator@6.24.1: + resolution: {integrity: sha512-RYqaPD0mQyQIFRu7Ho5wE2yvA/5jxqCIj/Lv4BXNq23mHYu/vxikOy2JueLiBxQknwapwrJeNCesvY0ZcfnlHg==} + dependencies: + babel-helper-function-name: 6.24.1 + babel-runtime: 6.26.0 + babel-template: 6.26.0 + babel-traverse: 6.26.0 + babel-types: 6.26.0 + transitivePeerDependencies: + - supports-color + dev: false + + /babel-helper-replace-supers@6.24.1: + resolution: {integrity: sha512-sLI+u7sXJh6+ToqDr57Bv973kCepItDhMou0xCP2YPVmR1jkHSCY+p1no8xErbV1Siz5QE8qKT1WIwybSWlqjw==} + dependencies: + babel-helper-optimise-call-expression: 6.24.1 + babel-messages: 6.23.0 + babel-runtime: 6.26.0 + babel-template: 6.26.0 + babel-traverse: 6.26.0 + babel-types: 6.26.0 + transitivePeerDependencies: + - supports-color + dev: false + + /babel-helpers@6.24.1: + resolution: {integrity: sha512-n7pFrqQm44TCYvrCDb0MqabAF+JUBq+ijBvNMUxpkLjJaAu32faIexewMumrH5KLLJ1HDyT0PTEqRyAe/GwwuQ==} + dependencies: + babel-runtime: 6.26.0 + babel-template: 6.26.0 + transitivePeerDependencies: + - supports-color + dev: false + + /babel-messages@6.23.0: + resolution: {integrity: sha512-Bl3ZiA+LjqaMtNYopA9TYE9HP1tQ+E5dLxE0XrAzcIJeK2UqF0/EaqXwBn9esd4UmTfEab+P+UYQ1GnioFIb/w==} + dependencies: + babel-runtime: 6.26.0 + dev: false + + /babel-plugin-check-es2015-constants@6.22.0: + resolution: {integrity: sha512-B1M5KBP29248dViEo1owyY32lk1ZSH2DaNNrXLGt8lyjjHm7pBqAdQ7VKUPR6EEDO323+OvT3MQXbCin8ooWdA==} + dependencies: + babel-runtime: 6.26.0 + dev: false + + /babel-plugin-macros@3.1.0: + resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} + engines: {node: '>=10', npm: '>=6'} + dependencies: + '@babel/runtime': 7.21.5 + cosmiconfig: 7.1.0 + resolve: 1.22.1 + + /babel-plugin-polyfill-corejs2@0.3.3(@babel/core@7.20.12): + resolution: {integrity: sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.21.9 + '@babel/core': 7.20.12 + '@babel/helper-define-polyfill-provider': 0.3.3(@babel/core@7.20.12) + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: false + + /babel-plugin-polyfill-corejs3@0.6.0(@babel/core@7.20.12): + resolution: {integrity: sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-define-polyfill-provider': 0.3.3(@babel/core@7.20.12) + core-js-compat: 3.29.0 + transitivePeerDependencies: + - supports-color + dev: false + + /babel-plugin-polyfill-regenerator@0.4.1(@babel/core@7.20.12): + resolution: {integrity: sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-define-polyfill-provider': 0.3.3(@babel/core@7.20.12) + transitivePeerDependencies: + - supports-color + dev: false + + /babel-plugin-syntax-async-functions@6.13.0: + resolution: {integrity: sha512-4Zp4unmHgw30A1eWI5EpACji2qMocisdXhAftfhXoSV9j0Tvj6nRFE3tOmRY912E0FMRm/L5xWE7MGVT2FoLnw==} + dev: false + + /babel-plugin-syntax-exponentiation-operator@6.13.0: + resolution: {integrity: sha512-Z/flU+T9ta0aIEKl1tGEmN/pZiI1uXmCiGFRegKacQfEJzp7iNsKloZmyJlQr+75FCJtiFfGIK03SiCvCt9cPQ==} + dev: false + + /babel-plugin-syntax-trailing-function-commas@6.22.0: + resolution: {integrity: sha512-Gx9CH3Q/3GKbhs07Bszw5fPTlU+ygrOGfAhEt7W2JICwufpC4SuO0mG0+4NykPBSYPMJhqvVlDBU17qB1D+hMQ==} + dev: false + + /babel-plugin-transform-async-to-generator@6.24.1: + resolution: {integrity: sha512-7BgYJujNCg0Ti3x0c/DL3tStvnKS6ktIYOmo9wginv/dfZOrbSZ+qG4IRRHMBOzZ5Awb1skTiAsQXg/+IWkZYw==} + dependencies: + babel-helper-remap-async-to-generator: 6.24.1 + babel-plugin-syntax-async-functions: 6.13.0 + babel-runtime: 6.26.0 + transitivePeerDependencies: + - supports-color + dev: false + + /babel-plugin-transform-es2015-arrow-functions@6.22.0: + resolution: {integrity: sha512-PCqwwzODXW7JMrzu+yZIaYbPQSKjDTAsNNlK2l5Gg9g4rz2VzLnZsStvp/3c46GfXpwkyufb3NCyG9+50FF1Vg==} + dependencies: + babel-runtime: 6.26.0 + dev: false + + /babel-plugin-transform-es2015-block-scoped-functions@6.22.0: + resolution: {integrity: sha512-2+ujAT2UMBzYFm7tidUsYh+ZoIutxJ3pN9IYrF1/H6dCKtECfhmB8UkHVpyxDwkj0CYbQG35ykoz925TUnBc3A==} + dependencies: + babel-runtime: 6.26.0 + dev: false + + /babel-plugin-transform-es2015-block-scoping@6.26.0: + resolution: {integrity: sha512-YiN6sFAQ5lML8JjCmr7uerS5Yc/EMbgg9G8ZNmk2E3nYX4ckHR01wrkeeMijEf5WHNK5TW0Sl0Uu3pv3EdOJWw==} + dependencies: + babel-runtime: 6.26.0 + babel-template: 6.26.0 + babel-traverse: 6.26.0 + babel-types: 6.26.0 + lodash: 4.17.21 + transitivePeerDependencies: + - supports-color + dev: false + + /babel-plugin-transform-es2015-classes@6.24.1: + resolution: {integrity: sha512-5Dy7ZbRinGrNtmWpquZKZ3EGY8sDgIVB4CU8Om8q8tnMLrD/m94cKglVcHps0BCTdZ0TJeeAWOq2TK9MIY6cag==} + dependencies: + babel-helper-define-map: 6.26.0 + babel-helper-function-name: 6.24.1 + babel-helper-optimise-call-expression: 6.24.1 + babel-helper-replace-supers: 6.24.1 + babel-messages: 6.23.0 + babel-runtime: 6.26.0 + babel-template: 6.26.0 + babel-traverse: 6.26.0 + babel-types: 6.26.0 + transitivePeerDependencies: + - supports-color + dev: false + + /babel-plugin-transform-es2015-computed-properties@6.24.1: + resolution: {integrity: sha512-C/uAv4ktFP/Hmh01gMTvYvICrKze0XVX9f2PdIXuriCSvUmV9j+u+BB9f5fJK3+878yMK6dkdcq+Ymr9mrcLzw==} + dependencies: + babel-runtime: 6.26.0 + babel-template: 6.26.0 + transitivePeerDependencies: + - supports-color + dev: false + + /babel-plugin-transform-es2015-destructuring@6.23.0: + resolution: {integrity: sha512-aNv/GDAW0j/f4Uy1OEPZn1mqD+Nfy9viFGBfQ5bZyT35YqOiqx7/tXdyfZkJ1sC21NyEsBdfDY6PYmLHF4r5iA==} + dependencies: + babel-runtime: 6.26.0 + dev: false + + /babel-plugin-transform-es2015-duplicate-keys@6.24.1: + resolution: {integrity: sha512-ossocTuPOssfxO2h+Z3/Ea1Vo1wWx31Uqy9vIiJusOP4TbF7tPs9U0sJ9pX9OJPf4lXRGj5+6Gkl/HHKiAP5ug==} + dependencies: + babel-runtime: 6.26.0 + babel-types: 6.26.0 + dev: false + + /babel-plugin-transform-es2015-for-of@6.23.0: + resolution: {integrity: sha512-DLuRwoygCoXx+YfxHLkVx5/NpeSbVwfoTeBykpJK7JhYWlL/O8hgAK/reforUnZDlxasOrVPPJVI/guE3dCwkw==} + dependencies: + babel-runtime: 6.26.0 + dev: false + + /babel-plugin-transform-es2015-function-name@6.24.1: + resolution: {integrity: sha512-iFp5KIcorf11iBqu/y/a7DK3MN5di3pNCzto61FqCNnUX4qeBwcV1SLqe10oXNnCaxBUImX3SckX2/o1nsrTcg==} + dependencies: + babel-helper-function-name: 6.24.1 + babel-runtime: 6.26.0 + babel-types: 6.26.0 + transitivePeerDependencies: + - supports-color + dev: false + + /babel-plugin-transform-es2015-literals@6.22.0: + resolution: {integrity: sha512-tjFl0cwMPpDYyoqYA9li1/7mGFit39XiNX5DKC/uCNjBctMxyL1/PT/l4rSlbvBG1pOKI88STRdUsWXB3/Q9hQ==} + dependencies: + babel-runtime: 6.26.0 + dev: false + + /babel-plugin-transform-es2015-modules-amd@6.24.1: + resolution: {integrity: sha512-LnIIdGWIKdw7zwckqx+eGjcS8/cl8D74A3BpJbGjKTFFNJSMrjN4bIh22HY1AlkUbeLG6X6OZj56BDvWD+OeFA==} + dependencies: + babel-plugin-transform-es2015-modules-commonjs: 6.26.2 + babel-runtime: 6.26.0 + babel-template: 6.26.0 + transitivePeerDependencies: + - supports-color + dev: false + + /babel-plugin-transform-es2015-modules-commonjs@6.26.2: + resolution: {integrity: sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==} + dependencies: + babel-plugin-transform-strict-mode: 6.24.1 + babel-runtime: 6.26.0 + babel-template: 6.26.0 + babel-types: 6.26.0 + transitivePeerDependencies: + - supports-color + dev: false + + /babel-plugin-transform-es2015-modules-systemjs@6.24.1: + resolution: {integrity: sha512-ONFIPsq8y4bls5PPsAWYXH/21Hqv64TBxdje0FvU3MhIV6QM2j5YS7KvAzg/nTIVLot2D2fmFQrFWCbgHlFEjg==} + dependencies: + babel-helper-hoist-variables: 6.24.1 + babel-runtime: 6.26.0 + babel-template: 6.26.0 + transitivePeerDependencies: + - supports-color + dev: false + + /babel-plugin-transform-es2015-modules-umd@6.24.1: + resolution: {integrity: sha512-LpVbiT9CLsuAIp3IG0tfbVo81QIhn6pE8xBJ7XSeCtFlMltuar5VuBV6y6Q45tpui9QWcy5i0vLQfCfrnF7Kiw==} + dependencies: + babel-plugin-transform-es2015-modules-amd: 6.24.1 + babel-runtime: 6.26.0 + babel-template: 6.26.0 + transitivePeerDependencies: + - supports-color + dev: false + + /babel-plugin-transform-es2015-object-super@6.24.1: + resolution: {integrity: sha512-8G5hpZMecb53vpD3mjs64NhI1au24TAmokQ4B+TBFBjN9cVoGoOvotdrMMRmHvVZUEvqGUPWL514woru1ChZMA==} + dependencies: + babel-helper-replace-supers: 6.24.1 + babel-runtime: 6.26.0 + transitivePeerDependencies: + - supports-color + dev: false + + /babel-plugin-transform-es2015-parameters@6.24.1: + resolution: {integrity: sha512-8HxlW+BB5HqniD+nLkQ4xSAVq3bR/pcYW9IigY+2y0dI+Y7INFeTbfAQr+63T3E4UDsZGjyb+l9txUnABWxlOQ==} + dependencies: + babel-helper-call-delegate: 6.24.1 + babel-helper-get-function-arity: 6.24.1 + babel-runtime: 6.26.0 + babel-template: 6.26.0 + babel-traverse: 6.26.0 + babel-types: 6.26.0 + transitivePeerDependencies: + - supports-color + dev: false + + /babel-plugin-transform-es2015-shorthand-properties@6.24.1: + resolution: {integrity: sha512-mDdocSfUVm1/7Jw/FIRNw9vPrBQNePy6wZJlR8HAUBLybNp1w/6lr6zZ2pjMShee65t/ybR5pT8ulkLzD1xwiw==} + dependencies: + babel-runtime: 6.26.0 + babel-types: 6.26.0 + dev: false + + /babel-plugin-transform-es2015-spread@6.22.0: + resolution: {integrity: sha512-3Ghhi26r4l3d0Js933E5+IhHwk0A1yiutj9gwvzmFbVV0sPMYk2lekhOufHBswX7NCoSeF4Xrl3sCIuSIa+zOg==} + dependencies: + babel-runtime: 6.26.0 + dev: false + + /babel-plugin-transform-es2015-sticky-regex@6.24.1: + resolution: {integrity: sha512-CYP359ADryTo3pCsH0oxRo/0yn6UsEZLqYohHmvLQdfS9xkf+MbCzE3/Kolw9OYIY4ZMilH25z/5CbQbwDD+lQ==} + dependencies: + babel-helper-regex: 6.26.0 + babel-runtime: 6.26.0 + babel-types: 6.26.0 + dev: false + + /babel-plugin-transform-es2015-template-literals@6.22.0: + resolution: {integrity: sha512-x8b9W0ngnKzDMHimVtTfn5ryimars1ByTqsfBDwAqLibmuuQY6pgBQi5z1ErIsUOWBdw1bW9FSz5RZUojM4apg==} + dependencies: + babel-runtime: 6.26.0 + dev: false + + /babel-plugin-transform-es2015-typeof-symbol@6.23.0: + resolution: {integrity: sha512-fz6J2Sf4gYN6gWgRZaoFXmq93X+Li/8vf+fb0sGDVtdeWvxC9y5/bTD7bvfWMEq6zetGEHpWjtzRGSugt5kNqw==} + dependencies: + babel-runtime: 6.26.0 + dev: false + + /babel-plugin-transform-es2015-unicode-regex@6.24.1: + resolution: {integrity: sha512-v61Dbbihf5XxnYjtBN04B/JBvsScY37R1cZT5r9permN1cp+b70DY3Ib3fIkgn1DI9U3tGgBJZVD8p/mE/4JbQ==} + dependencies: + babel-helper-regex: 6.26.0 + babel-runtime: 6.26.0 + regexpu-core: 2.0.0 + dev: false + + /babel-plugin-transform-exponentiation-operator@6.24.1: + resolution: {integrity: sha512-LzXDmbMkklvNhprr20//RStKVcT8Cu+SQtX18eMHLhjHf2yFzwtQ0S2f0jQ+89rokoNdmwoSqYzAhq86FxlLSQ==} + dependencies: + babel-helper-builder-binary-assignment-operator-visitor: 6.24.1 + babel-plugin-syntax-exponentiation-operator: 6.13.0 + babel-runtime: 6.26.0 + transitivePeerDependencies: + - supports-color + dev: false + + /babel-plugin-transform-regenerator@6.26.0: + resolution: {integrity: sha512-LS+dBkUGlNR15/5WHKe/8Neawx663qttS6AGqoOUhICc9d1KciBvtrQSuc0PI+CxQ2Q/S1aKuJ+u64GtLdcEZg==} + dependencies: + regenerator-transform: 0.10.1 + dev: false + + /babel-plugin-transform-strict-mode@6.24.1: + resolution: {integrity: sha512-j3KtSpjyLSJxNoCDrhwiJad8kw0gJ9REGj8/CqL0HeRyLnvUNYV9zcqluL6QJSXh3nfsLEmSLvwRfGzrgR96Pw==} + dependencies: + babel-runtime: 6.26.0 + babel-types: 6.26.0 + dev: false + + /babel-preset-env@1.7.0: + resolution: {integrity: sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==} + dependencies: + babel-plugin-check-es2015-constants: 6.22.0 + babel-plugin-syntax-trailing-function-commas: 6.22.0 + babel-plugin-transform-async-to-generator: 6.24.1 + babel-plugin-transform-es2015-arrow-functions: 6.22.0 + babel-plugin-transform-es2015-block-scoped-functions: 6.22.0 + babel-plugin-transform-es2015-block-scoping: 6.26.0 + babel-plugin-transform-es2015-classes: 6.24.1 + babel-plugin-transform-es2015-computed-properties: 6.24.1 + babel-plugin-transform-es2015-destructuring: 6.23.0 + babel-plugin-transform-es2015-duplicate-keys: 6.24.1 + babel-plugin-transform-es2015-for-of: 6.23.0 + babel-plugin-transform-es2015-function-name: 6.24.1 + babel-plugin-transform-es2015-literals: 6.22.0 + babel-plugin-transform-es2015-modules-amd: 6.24.1 + babel-plugin-transform-es2015-modules-commonjs: 6.26.2 + babel-plugin-transform-es2015-modules-systemjs: 6.24.1 + babel-plugin-transform-es2015-modules-umd: 6.24.1 + babel-plugin-transform-es2015-object-super: 6.24.1 + babel-plugin-transform-es2015-parameters: 6.24.1 + babel-plugin-transform-es2015-shorthand-properties: 6.24.1 + babel-plugin-transform-es2015-spread: 6.22.0 + babel-plugin-transform-es2015-sticky-regex: 6.24.1 + babel-plugin-transform-es2015-template-literals: 6.22.0 + babel-plugin-transform-es2015-typeof-symbol: 6.23.0 + babel-plugin-transform-es2015-unicode-regex: 6.24.1 + babel-plugin-transform-exponentiation-operator: 6.24.1 + babel-plugin-transform-regenerator: 6.26.0 + browserslist: 3.2.8 + invariant: 2.2.4 + semver: 5.7.1 + transitivePeerDependencies: + - supports-color + dev: false + + /babel-register@6.26.0: + resolution: {integrity: sha512-veliHlHX06wjaeY8xNITbveXSiI+ASFnOqvne/LaIJIqOWi2Ogmj91KOugEz/hoh/fwMhXNBJPCv8Xaz5CyM4A==} + dependencies: + babel-core: 6.26.3 + babel-runtime: 6.26.0 + core-js: 2.6.12 + home-or-tmp: 2.0.0 + lodash: 4.17.21 + mkdirp: 0.5.6 + source-map-support: 0.4.18 + transitivePeerDependencies: + - supports-color + dev: false + + /babel-runtime@6.26.0: + resolution: {integrity: sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==} + dependencies: + core-js: 2.6.12 + regenerator-runtime: 0.11.1 + dev: false + + /babel-template@6.26.0: + resolution: {integrity: sha512-PCOcLFW7/eazGUKIoqH97sO9A2UYMahsn/yRQ7uOk37iutwjq7ODtcTNF+iFDSHNfkctqsLRjLP7URnOx0T1fg==} + dependencies: + babel-runtime: 6.26.0 + babel-traverse: 6.26.0 + babel-types: 6.26.0 + babylon: 6.18.0 + lodash: 4.17.21 + transitivePeerDependencies: + - supports-color + dev: false + + /babel-traverse@6.26.0: + resolution: {integrity: sha512-iSxeXx7apsjCHe9c7n8VtRXGzI2Bk1rBSOJgCCjfyXb6v1aCqE1KSEpq/8SXuVN8Ka/Rh1WDTF0MDzkvTA4MIA==} + dependencies: + babel-code-frame: 6.26.0 + babel-messages: 6.23.0 + babel-runtime: 6.26.0 + babel-types: 6.26.0 + babylon: 6.18.0 + debug: 2.6.9 + globals: 9.18.0 + invariant: 2.2.4 + lodash: 4.17.21 + transitivePeerDependencies: + - supports-color + dev: false + + /babel-types@6.26.0: + resolution: {integrity: sha512-zhe3V/26rCWsEZK8kZN+HaQj5yQ1CilTObixFzKW1UWjqG7618Twz6YEsCnjfg5gBcJh02DrpCkS9h98ZqDY+g==} + dependencies: + babel-runtime: 6.26.0 + esutils: 2.0.3 + lodash: 4.17.21 + to-fast-properties: 1.0.3 + dev: false + + /babelify@7.3.0: + resolution: {integrity: sha512-vID8Fz6pPN5pJMdlUnNFSfrlcx5MUule4k9aKs/zbZPyXxMTcRrB0M4Tarw22L8afr8eYSWxDPYCob3TdrqtlA==} + dependencies: + babel-core: 6.26.3 + object-assign: 4.1.1 + transitivePeerDependencies: + - supports-color + dev: false + + /babylon@6.18.0: + resolution: {integrity: sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==} + hasBin: true + dev: false + + /backoff@2.5.0: + resolution: {integrity: sha512-wC5ihrnUXmR2douXmXLCe5O3zg3GKIyvRi/hi58a/XyRxVI+3/yM0PYueQOZXPXQ9pxBislYkw+sF9b7C/RuMA==} + engines: {node: '>= 0.6'} + dependencies: + precond: 0.2.3 + dev: false + + /balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + /balanced-match@2.0.0: + resolution: {integrity: sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==} + dev: true + + /base-x@3.0.9: + resolution: {integrity: sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==} + dependencies: + safe-buffer: 5.2.1 + + /base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + + /base64url@3.0.1: + resolution: {integrity: sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A==} + engines: {node: '>=6.0.0'} + dev: false + + /base@0.11.2: + resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==} + engines: {node: '>=0.10.0'} + dependencies: + cache-base: 1.0.1 + class-utils: 0.3.6 + component-emitter: 1.3.0 + define-property: 1.0.0 + isobject: 3.0.1 + mixin-deep: 1.3.2 + pascalcase: 0.1.1 + + /bcrypt-pbkdf@1.0.2: + resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==} + dependencies: + tweetnacl: 0.14.5 + + /better-path-resolve@1.0.0: + resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} + engines: {node: '>=4'} + dependencies: + is-windows: 1.0.2 + dev: true + + /bignumber.js@7.2.1: + resolution: {integrity: sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ==} + dev: false + + /bignumber.js@8.0.2: + resolution: {integrity: sha512-EiuvFrnbv0jFixEQ9f58jo7X0qI2lNGIr/MxntmVzQc5JUweDSh8y8hbTCAomFtqwUPIOWcLXP0VEOSZTG7FFw==} + dev: false + + /bignumber.js@9.1.1: + resolution: {integrity: sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==} + + /binary-extensions@2.2.0: + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + engines: {node: '>=8'} + dev: true + + /bind-decorator@1.0.11: + resolution: {integrity: sha512-yzkH0uog6Vv/vQ9+rhSKxecnqGUZHYncg7qS7voz3Q76+TAi1SGiOKk2mlOvusQnFz9Dc4BC/NMkeXu11YgjJg==} + dev: false + + /bindings@1.5.0: + resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} + requiresBuild: true + dependencies: + file-uri-to-path: 1.0.0 + dev: false + + /bip39@2.5.0: + resolution: {integrity: sha512-xwIx/8JKoT2+IPJpFEfXoWdYwP7UVAoUxxLNfGCfVowaJE7yg1Y5B1BVPqlUNsBq5/nGwmFkwRJ8xDW4sX8OdA==} + dependencies: + create-hash: 1.2.0 + pbkdf2: 3.1.2 + randombytes: 2.1.0 + safe-buffer: 5.2.1 + unorm: 1.6.0 + dev: false + + /bip39@2.6.0: + resolution: {integrity: sha512-RrnQRG2EgEoqO24ea+Q/fftuPUZLmrEM3qNhhGsA3PbaXaCW791LTzPuVyx/VprXQcTbPJ3K3UeTna8ZnVl2sg==} + dependencies: + create-hash: 1.2.0 + pbkdf2: 3.1.2 + randombytes: 2.1.0 + safe-buffer: 5.2.1 + unorm: 1.6.0 + dev: false + + /bip39@3.1.0: + resolution: {integrity: sha512-c9kiwdk45Do5GL0vJMe7tS95VjCii65mYAH7DfWl3uW8AVzXKQVUm64i3hzVybBDMp9r7j9iNxR85+ul8MdN/A==} + dependencies: + '@noble/hashes': 1.2.0 + dev: false + + /bip66@1.1.5: + resolution: {integrity: sha512-nemMHz95EmS38a26XbbdxIYj5csHd3RMP3H5bwQknX0WYHF01qhpufP42mLOwVICuH2JmhIhXiWs89MfUGL7Xw==} + dependencies: + safe-buffer: 5.2.1 + dev: false + + /bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + dependencies: + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.0 + dev: false + optional: true + + /blakejs@1.2.1: + resolution: {integrity: sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==} + + /bluebird@3.7.2: + resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} + + /bn.js@4.11.6: + resolution: {integrity: sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==} + + /bn.js@4.11.8: + resolution: {integrity: sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==} + dev: false + + /bn.js@4.12.0: + resolution: {integrity: sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==} + + /bn.js@5.2.1: + resolution: {integrity: sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==} + + /body-parser@1.18.3: + resolution: {integrity: sha512-YQyoqQG3sO8iCmf8+hyVpgHHOv0/hCEFiS4zTGUwTA1HjAFX66wRcNQrVCeJq9pgESMRvUAOvSil5MJlmccuKQ==} + engines: {node: '>= 0.8'} + dependencies: + bytes: 3.0.0 + content-type: 1.0.5 + debug: 2.6.9 + depd: 1.1.2 + http-errors: 1.6.3 + iconv-lite: 0.4.23 + on-finished: 2.3.0 + qs: 6.5.2 + raw-body: 2.3.3 + type-is: 1.6.18 + transitivePeerDependencies: + - supports-color + + /body-parser@1.20.1: + resolution: {integrity: sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + dependencies: + bytes: 3.1.2 + content-type: 1.0.5 + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + on-finished: 2.4.1 + qs: 6.11.0 + raw-body: 2.5.1 + type-is: 1.6.18 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + + /bowser@2.11.0: + resolution: {integrity: sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==} + dev: false + + /brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + /brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + dependencies: + balanced-match: 1.0.2 + dev: true + + /braces@2.3.2: + resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==} + engines: {node: '>=0.10.0'} + dependencies: + arr-flatten: 1.1.0 + array-unique: 0.3.2 + extend-shallow: 2.0.1 + fill-range: 4.0.0 + isobject: 3.0.1 + repeat-element: 1.1.4 + snapdragon: 0.8.2 + snapdragon-node: 2.1.1 + split-string: 3.1.0 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + + /braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + dependencies: + fill-range: 7.0.1 + + /breakword@1.0.5: + resolution: {integrity: sha512-ex5W9DoOQ/LUEU3PMdLs9ua/CYZl1678NUkKOdUSi8Aw5F1idieaiRURCBFJCwVcrD1J8Iy3vfWSloaMwO2qFg==} + dependencies: + wcwidth: 1.0.1 + dev: true + + /brorand@1.1.0: + resolution: {integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==} + + /browserify-aes@1.2.0: + resolution: {integrity: sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==} + dependencies: + buffer-xor: 1.0.3 + cipher-base: 1.0.4 + create-hash: 1.2.0 + evp_bytestokey: 1.0.3 + inherits: 2.0.4 + safe-buffer: 5.2.1 + + /browserify-cipher@1.0.1: + resolution: {integrity: sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==} + dependencies: + browserify-aes: 1.2.0 + browserify-des: 1.0.2 + evp_bytestokey: 1.0.3 + dev: false + optional: true + + /browserify-des@1.0.2: + resolution: {integrity: sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==} + dependencies: + cipher-base: 1.0.4 + des.js: 1.0.1 + inherits: 2.0.4 + safe-buffer: 5.2.1 + dev: false + optional: true + + /browserify-rsa@4.1.0: + resolution: {integrity: sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==} + dependencies: + bn.js: 5.2.1 + randombytes: 2.1.0 + dev: false + optional: true + + /browserify-sign@4.2.1: + resolution: {integrity: sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==} + dependencies: + bn.js: 5.2.1 + browserify-rsa: 4.1.0 + create-hash: 1.2.0 + create-hmac: 1.1.7 + elliptic: 6.5.4 + inherits: 2.0.4 + parse-asn1: 5.1.6 + readable-stream: 3.6.0 + safe-buffer: 5.2.1 + dev: false + optional: true + + /browserslist@3.2.8: + resolution: {integrity: sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001451 + electron-to-chromium: 1.4.295 + dev: false + + /browserslist@4.21.5: + resolution: {integrity: sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001451 + electron-to-chromium: 1.4.295 + node-releases: 2.0.10 + update-browserslist-db: 1.0.10(browserslist@4.21.5) + + /bs58@2.0.1: + resolution: {integrity: sha512-77ld2g7Hn1GyIUpuUVfbZdhO1q9R9gv/GYam4HAeAW/tzhQDrbJ2ZttN1tIe4hmKrWFE+oUtAhBNx/EA5SVdTg==} + dev: false + + /bs58@4.0.1: + resolution: {integrity: sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==} + dependencies: + base-x: 3.0.9 + + /bs58check@2.1.2: + resolution: {integrity: sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==} + dependencies: + bs58: 4.0.1 + create-hash: 1.2.0 + safe-buffer: 5.2.1 + + /btoa@1.2.1: + resolution: {integrity: sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==} + engines: {node: '>= 0.4.0'} + hasBin: true + dev: false + + /buffer-alloc-unsafe@1.1.0: + resolution: {integrity: sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==} + dev: false + + /buffer-alloc@1.2.0: + resolution: {integrity: sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==} + dependencies: + buffer-alloc-unsafe: 1.1.0 + buffer-fill: 1.0.0 + dev: false + + /buffer-fill@1.0.0: + resolution: {integrity: sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==} + dev: false + + /buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + dev: false + + /buffer-to-arraybuffer@0.0.5: + resolution: {integrity: sha512-3dthu5CYiVB1DEJp61FtApNnNndTckcqe4pFcLdvHtrpG+kcyekCJKg4MRiDcFW7A6AODnXB9U4dwQiCW5kzJQ==} + + /buffer-xor@1.0.3: + resolution: {integrity: sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==} + + /buffer-xor@2.0.2: + resolution: {integrity: sha512-eHslX0bin3GB+Lx2p7lEYRShRewuNZL3fUl4qlVJGGiwoPGftmt8JQgk2Y9Ji5/01TnVDo33E5b5O3vUB1HdqQ==} + dependencies: + safe-buffer: 5.2.1 + dev: false + + /buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + + /bufferutil@4.0.7: + resolution: {integrity: sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw==} + engines: {node: '>=6.14.2'} + requiresBuild: true + dependencies: + node-gyp-build: 4.6.0 + + /bytes@3.0.0: + resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} + engines: {node: '>= 0.8'} + + /bytes@3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} + + /bytewise-core@1.2.3: + resolution: {integrity: sha512-nZD//kc78OOxeYtRlVk8/zXqTB4gf/nlguL1ggWA8FuchMyOxcyHR4QPQZMUmA7czC+YnaBrPUCubqAWe50DaA==} + dependencies: + typewise-core: 1.2.0 + dev: false + + /bytewise@1.1.0: + resolution: {integrity: sha512-rHuuseJ9iQ0na6UDhnrRVDh8YnWVlU6xM3VH6q/+yHDeUH2zIhUzP+2/h3LIrhLDBtTqzWpE3p3tP/boefskKQ==} + dependencies: + bytewise-core: 1.2.3 + typewise: 1.0.3 + dev: false + + /cache-base@1.0.1: + resolution: {integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==} + engines: {node: '>=0.10.0'} + dependencies: + collection-visit: 1.0.0 + component-emitter: 1.3.0 + get-value: 2.0.6 + has-value: 1.0.0 + isobject: 3.0.1 + set-value: 2.0.1 + to-object-path: 0.3.0 + union-value: 1.0.1 + unset-value: 1.0.0 + + /cacheable-lookup@5.0.4: + resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==} + engines: {node: '>=10.6.0'} + + /cacheable-lookup@6.1.0: + resolution: {integrity: sha512-KJ/Dmo1lDDhmW2XDPMo+9oiy/CeqosPguPCrgcVzKyZrL6pM1gU2GmPY/xo6OQPTUaA/c0kwHuywB4E6nmT9ww==} + engines: {node: '>=10.6.0'} + + /cacheable-request@6.1.0: + resolution: {integrity: sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==} + engines: {node: '>=8'} + dependencies: + clone-response: 1.0.3 + get-stream: 5.2.0 + http-cache-semantics: 4.1.1 + keyv: 3.1.0 + lowercase-keys: 2.0.0 + normalize-url: 4.5.1 + responselike: 1.0.2 + dev: false + optional: true + + /cacheable-request@7.0.2: + resolution: {integrity: sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==} + engines: {node: '>=8'} + dependencies: + clone-response: 1.0.3 + get-stream: 5.2.0 + http-cache-semantics: 4.1.1 + keyv: 4.5.2 + lowercase-keys: 2.0.0 + normalize-url: 6.1.0 + responselike: 2.0.1 + + /cachedown@1.0.0: + resolution: {integrity: sha512-t+yVk82vQWCJF3PsWHMld+jhhjkkWjcAzz8NbFx1iULOXWl8Tm/FdM4smZNVw3MRr0X+lVTx9PKzvEn4Ng19RQ==} + dependencies: + abstract-leveldown: 2.7.2 + lru-cache: 3.2.0 + dev: false + + /call-bind@1.0.2: + resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} + dependencies: + function-bind: 1.1.1 + get-intrinsic: 1.2.0 + + /callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + /camelcase-keys@6.2.2: + resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} + engines: {node: '>=8'} + dependencies: + camelcase: 5.3.1 + map-obj: 4.3.0 + quick-lru: 4.0.1 + dev: true + + /camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + + /camelcase@6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} + dev: true + + /caniuse-lite@1.0.30001451: + resolution: {integrity: sha512-XY7UbUpGRatZzoRft//5xOa69/1iGJRBlrieH6QYrkKLIFn3m7OVEJ81dSrKoy2BnKsdbX5cLrOispZNYo9v2w==} + + /caseless@0.12.0: + resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} + + /chalk@1.1.3: + resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==} + engines: {node: '>=0.10.0'} + dependencies: + ansi-styles: 2.2.1 + escape-string-regexp: 1.0.5 + has-ansi: 2.0.0 + strip-ansi: 3.0.1 + supports-color: 2.0.0 + dev: false + + /chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + + /chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + /chardet@0.7.0: + resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + dev: true + + /checkpoint-store@1.1.0: + resolution: {integrity: sha512-J/NdY2WvIx654cc6LWSq/IYFFCUf75fFTgwzFnmbqyORH4MwgiQCgswLLKBGzmsyTI5V7i5bp/So6sMbDWhedg==} + dependencies: + functional-red-black-tree: 1.0.1 + dev: false + + /chokidar@3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: 3.1.3 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /chownr@1.1.4: + resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} + + /ci-info@2.0.0: + resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} + dev: false + + /ci-info@3.7.1: + resolution: {integrity: sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==} + engines: {node: '>=8'} + dev: true + + /cids@0.7.5: + resolution: {integrity: sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA==} + engines: {node: '>=4.0.0', npm: '>=3.0.0'} + deprecated: This module has been superseded by the multiformats module + dependencies: + buffer: 5.7.1 + class-is: 1.1.0 + multibase: 0.6.1 + multicodec: 1.0.4 + multihashes: 0.4.21 + + /cipher-base@1.0.4: + resolution: {integrity: sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==} + dependencies: + inherits: 2.0.4 + safe-buffer: 5.2.1 + + /class-is@1.1.0: + resolution: {integrity: sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw==} + + /class-utils@0.3.6: + resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==} + engines: {node: '>=0.10.0'} + dependencies: + arr-union: 3.1.0 + define-property: 0.2.5 + isobject: 3.0.1 + static-extend: 0.1.2 + + /client-only@0.0.1: + resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} + dev: false + + /cliui@5.0.0: + resolution: {integrity: sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==} + dependencies: + string-width: 3.1.0 + strip-ansi: 5.2.0 + wrap-ansi: 5.1.0 + dev: false + + /cliui@6.0.0: + resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 6.2.0 + dev: true + + /cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + dev: true + + /clone-response@1.0.3: + resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} + dependencies: + mimic-response: 1.0.1 + + /clone@1.0.4: + resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} + engines: {node: '>=0.8'} + dev: true + + /clone@2.1.2: + resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==} + engines: {node: '>=0.8'} + dev: false + + /clsx@1.2.1: + resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==} + engines: {node: '>=6'} + + /code-block-writer@11.0.3: + resolution: {integrity: sha512-NiujjUFB4SwScJq2bwbYUtXbZhBSlY6vYzm++3Q6oC+U+injTqfPYFK8wS9COOmb2lueqp0ZRB4nK1VYeHgNyw==} + dev: true + + /code-block-writer@12.0.0: + resolution: {integrity: sha512-q4dMFMlXtKR3XNBHyMHt/3pwYNA69EDk00lloMOaaUMKPUXBw6lpXtbu3MMVG6/uOihGnRDOlkyqsONEUj60+w==} + dev: true + + /code-point-at@1.1.0: + resolution: {integrity: sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==} + engines: {node: '>=0.10.0'} + dev: false + optional: true + + /coinstring@2.3.0: + resolution: {integrity: sha512-2xMhQ++4ETUPiy2oqOlfydsuQArNLB6TExNF33Jmv+IgpmV8Hf6v6yICQAwH4uEHTnkJ3DscSyeKFrg37ljIOw==} + dependencies: + bs58: 2.0.1 + create-hash: 1.2.0 + dev: false + + /collection-visit@1.0.0: + resolution: {integrity: sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==} + engines: {node: '>=0.10.0'} + dependencies: + map-visit: 1.0.0 + object-visit: 1.0.1 + + /color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + dependencies: + color-name: 1.1.3 + + /color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + dependencies: + color-name: 1.1.4 + + /color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + + /color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + /colord@2.9.3: + resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} + dev: true + + /colors@1.2.5: + resolution: {integrity: sha512-erNRLao/Y3Fv54qUa0LBB+//Uf3YwMUmdJinN20yMXm9zdKKqH9wt7R9IIVZ+K7ShzfpLV/Zg8+VyrBJYB4lpg==} + engines: {node: '>=0.1.90'} + dev: true + + /colors@1.4.0: + resolution: {integrity: sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==} + engines: {node: '>=0.1.90'} + dev: true + + /combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + dependencies: + delayed-stream: 1.0.0 + + /commander@9.5.0: + resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} + engines: {node: ^12.20.0 || >=14} + requiresBuild: true + dev: true + optional: true + + /component-emitter@1.3.0: + resolution: {integrity: sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==} + + /concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + /concat-stream@1.6.2: + resolution: {integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==} + engines: {'0': node >= 0.8} + dependencies: + buffer-from: 1.1.2 + inherits: 2.0.4 + readable-stream: 2.3.8 + typedarray: 0.0.6 + dev: false + + /console-control-strings@1.1.0: + resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} + dev: false + optional: true + + /content-disposition@0.5.2: + resolution: {integrity: sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==} + engines: {node: '>= 0.6'} + + /content-hash@2.5.2: + resolution: {integrity: sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw==} + dependencies: + cids: 0.7.5 + multicodec: 0.5.7 + multihashes: 0.4.21 + + /content-type@1.0.5: + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + engines: {node: '>= 0.6'} + + /convert-source-map@1.9.0: + resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} + + /cookie-signature@1.0.6: + resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} + + /cookie@0.3.1: + resolution: {integrity: sha512-+IJOX0OqlHCszo2mBUq+SrEbCj6w7Kpffqx60zYbPTFaO4+yYgRjHwcZNpWvaTylDHaV7PPmBHzSecZiMhtPgw==} + engines: {node: '>= 0.6'} + + /cookiejar@2.1.4: + resolution: {integrity: sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==} + dev: false + + /copy-anything@3.0.3: + resolution: {integrity: sha512-fpW2W/BqEzqPp29QS+MwwfisHCQZtiduTe/m8idFo0xbti9fIZ2WVhAsCv4ggFVH3AgCkVdpoOCtQC6gBrdhjw==} + engines: {node: '>=12.13'} + dependencies: + is-what: 4.1.8 + dev: false + + /copy-descriptor@0.1.1: + resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==} + engines: {node: '>=0.10.0'} + + /copy-to-clipboard@3.3.3: + resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==} + dependencies: + toggle-selection: 1.0.6 + dev: false + + /core-js-compat@3.29.0: + resolution: {integrity: sha512-ScMn3uZNAFhK2DGoEfErguoiAHhV2Ju+oJo/jK08p7B3f3UhocUrCCkTvnZaiS+edl5nlIoiBXKcwMc6elv4KQ==} + dependencies: + browserslist: 4.21.5 + dev: false + + /core-js-pure@3.29.0: + resolution: {integrity: sha512-v94gUjN5UTe1n0yN/opTihJ8QBWD2O8i19RfTZR7foONPWArnjB96QA/wk5ozu1mm6ja3udQCzOzwQXTxi3xOQ==} + requiresBuild: true + dev: false + + /core-js@2.6.12: + resolution: {integrity: sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==} + deprecated: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js. + requiresBuild: true + dev: false + + /core-util-is@1.0.2: + resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} + + /cors@2.8.5: + resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} + engines: {node: '>= 0.10'} + dependencies: + object-assign: 4.1.1 + vary: 1.1.2 + + /cosmiconfig@7.1.0: + resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} + engines: {node: '>=10'} + dependencies: + '@types/parse-json': 4.0.0 + import-fresh: 3.3.0 + parse-json: 5.2.0 + path-type: 4.0.0 + yaml: 1.10.2 + + /crc-32@1.2.2: + resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} + engines: {node: '>=0.8'} + hasBin: true + + /create-ecdh@4.0.4: + resolution: {integrity: sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==} + dependencies: + bn.js: 4.12.0 + elliptic: 6.5.4 + dev: false + optional: true + + /create-hash@1.2.0: + resolution: {integrity: sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==} + dependencies: + cipher-base: 1.0.4 + inherits: 2.0.4 + md5.js: 1.3.5 + ripemd160: 2.0.2 + sha.js: 2.4.11 + + /create-hmac@1.1.7: + resolution: {integrity: sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==} + dependencies: + cipher-base: 1.0.4 + create-hash: 1.2.0 + inherits: 2.0.4 + ripemd160: 2.0.2 + safe-buffer: 5.2.1 + sha.js: 2.4.11 + + /cross-fetch@2.2.6: + resolution: {integrity: sha512-9JZz+vXCmfKUZ68zAptS7k4Nu8e2qcibe7WVZYps7sAgk5R8GYTc+T1WR0v1rlP9HxgARmOX1UTIJZFytajpNA==} + dependencies: + node-fetch: 2.6.9 + whatwg-fetch: 2.0.4 + transitivePeerDependencies: + - encoding + dev: false + + /cross-fetch@3.1.5: + resolution: {integrity: sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==} + dependencies: + node-fetch: 2.6.7 + transitivePeerDependencies: + - encoding + + /cross-spawn@5.1.0: + resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} + dependencies: + lru-cache: 4.1.5 + shebang-command: 1.2.0 + which: 1.3.1 + dev: true + + /cross-spawn@6.0.5: + resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==} + engines: {node: '>=4.8'} + dependencies: + nice-try: 1.0.5 + path-key: 2.0.1 + semver: 5.7.1 + shebang-command: 1.2.0 + which: 1.3.1 + dev: false + + /cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + /crypto-browserify@3.12.0: + resolution: {integrity: sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==} + dependencies: + browserify-cipher: 1.0.1 + browserify-sign: 4.2.1 + create-ecdh: 4.0.4 + create-hash: 1.2.0 + create-hmac: 1.1.7 + diffie-hellman: 5.0.3 + inherits: 2.0.4 + pbkdf2: 3.1.2 + public-encrypt: 4.0.3 + randombytes: 2.1.0 + randomfill: 1.0.4 + dev: false + optional: true + + /css-functions-list@3.1.0: + resolution: {integrity: sha512-/9lCvYZaUbBGvYUgYGFJ4dcYiyqdhSjG7IPVluoV8A1ILjkF7ilmhp1OGUz8n+nmBcu0RNrQAzgD8B6FJbrt2w==} + engines: {node: '>=12.22'} + dev: true + + /css-vendor@2.0.8: + resolution: {integrity: sha512-x9Aq0XTInxrkuFeHKbYC7zWY8ai7qJ04Kxd9MnvbC1uO5DagxoHQjm4JvG+vCdXOoFtCjbL2XSZfxmoYa9uQVQ==} + dependencies: + '@babel/runtime': 7.21.5 + is-in-browser: 1.1.3 + + /cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /csstype@3.1.1: + resolution: {integrity: sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==} + + /csv-generate@3.4.3: + resolution: {integrity: sha512-w/T+rqR0vwvHqWs/1ZyMDWtHHSJaN06klRqJXBEpDJaM/+dZkso0OKh1VcuuYvK3XM53KysVNq8Ko/epCK8wOw==} + dev: true + + /csv-parse@4.16.3: + resolution: {integrity: sha512-cO1I/zmz4w2dcKHVvpCr7JVRu8/FymG5OEpmvsZYlccYolPBLoVGKUHgNoc4ZGkFeFlWGEDmMyBM+TTqRdW/wg==} + dev: true + + /csv-stringify@5.6.5: + resolution: {integrity: sha512-PjiQ659aQ+fUTQqSrd1XEDnOr52jh30RBurfzkscaE2tPaFsDH5wOAHJiw8XAHphRknCwMUE9KRayc4K/NbO8A==} + dev: true + + /csv@5.5.3: + resolution: {integrity: sha512-QTaY0XjjhTQOdguARF0lGKm5/mEq9PD9/VhZZegHDIBq2tQwgNpHc3dneD4mGo2iJs+fTKv5Bp0fZ+BRuY3Z0g==} + engines: {node: '>= 0.1.90'} + dependencies: + csv-generate: 3.4.3 + csv-parse: 4.16.3 + csv-stringify: 5.6.5 + stream-transform: 2.1.3 + dev: true + + /d@1.0.1: + resolution: {integrity: sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==} + dependencies: + es5-ext: 0.10.62 + type: 1.2.0 + + /dashdash@1.14.1: + resolution: {integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==} + engines: {node: '>=0.10'} + dependencies: + assert-plus: 1.0.0 + + /debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.0.0 + + /debug@3.1.0: + resolution: {integrity: sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.0.0 + dev: false + + /debug@3.2.6: + resolution: {integrity: sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==} + deprecated: Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797) + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.3 + dev: false + + /debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.3 + dev: true + + /debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + + /decamelize-keys@1.1.1: + resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} + engines: {node: '>=0.10.0'} + dependencies: + decamelize: 1.2.0 + map-obj: 1.0.1 + dev: true + + /decamelize@1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} + + /decode-uri-component@0.2.2: + resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} + engines: {node: '>=0.10'} + + /decompress-response@3.3.0: + resolution: {integrity: sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==} + engines: {node: '>=4'} + dependencies: + mimic-response: 1.0.1 + + /decompress-response@4.2.1: + resolution: {integrity: sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==} + engines: {node: '>=8'} + dependencies: + mimic-response: 2.1.0 + dev: false + optional: true + + /decompress-response@6.0.0: + resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} + engines: {node: '>=10'} + dependencies: + mimic-response: 3.1.0 + + /deep-equal@1.1.1: + resolution: {integrity: sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==} + dependencies: + is-arguments: 1.1.1 + is-date-object: 1.0.5 + is-regex: 1.1.4 + object-is: 1.1.5 + object-keys: 1.1.1 + regexp.prototype.flags: 1.4.3 + dev: false + + /deep-extend@0.6.0: + resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} + engines: {node: '>=4.0.0'} + dev: false + optional: true + + /deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + + /defaults@1.0.4: + resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} + dependencies: + clone: 1.0.4 + dev: true + + /defer-to-connect@1.1.3: + resolution: {integrity: sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==} + dev: false + optional: true + + /defer-to-connect@2.0.1: + resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} + engines: {node: '>=10'} + + /deferred-leveldown@1.2.2: + resolution: {integrity: sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA==} + dependencies: + abstract-leveldown: 2.6.3 + dev: false + + /deferred-leveldown@4.0.2: + resolution: {integrity: sha512-5fMC8ek8alH16QiV0lTCis610D1Zt1+LA4MS4d63JgS32lrCjTFDUFz2ao09/j2I4Bqb5jL4FZYwu7Jz0XO1ww==} + engines: {node: '>=6'} + dependencies: + abstract-leveldown: 5.0.0 + inherits: 2.0.4 + dev: false + + /define-lazy-prop@2.0.0: + resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} + engines: {node: '>=8'} + dev: true + + /define-properties@1.1.4: + resolution: {integrity: sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==} + engines: {node: '>= 0.4'} + dependencies: + has-property-descriptors: 1.0.0 + object-keys: 1.1.1 + + /define-property@0.2.5: + resolution: {integrity: sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==} + engines: {node: '>=0.10.0'} + dependencies: + is-descriptor: 0.1.6 + + /define-property@1.0.0: + resolution: {integrity: sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==} + engines: {node: '>=0.10.0'} + dependencies: + is-descriptor: 1.0.2 + + /define-property@2.0.2: + resolution: {integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==} + engines: {node: '>=0.10.0'} + dependencies: + is-descriptor: 1.0.2 + isobject: 3.0.1 + + /defined@1.0.1: + resolution: {integrity: sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==} + dev: false + + /delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + + /delegates@1.0.0: + resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} + dev: false + optional: true + + /depd@1.1.2: + resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} + engines: {node: '>= 0.6'} + + /depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} + + /dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + dev: false + + /des.js@1.0.1: + resolution: {integrity: sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==} + dependencies: + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + dev: false + optional: true + + /destroy@1.0.4: + resolution: {integrity: sha512-3NdhDuEXnfun/z7x9GOElY49LoqVHoGScmOKwmxhsS8N5Y+Z8KyPPDnaSzqWgYt/ji4mqwfTS34Htrk0zPIXVg==} + + /destroy@1.2.0: + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + + /detect-browser@5.2.0: + resolution: {integrity: sha512-tr7XntDAu50BVENgQfajMLzacmSe34D+qZc4zjnniz0ZVuw/TZcLcyxHQjYpJTM36sGEkZZlYLnIM1hH7alTMA==} + dev: false + + /detect-indent@4.0.0: + resolution: {integrity: sha512-BDKtmHlOzwI7iRuEkhzsnPoi5ypEhWAJB5RvHWe1kMr06js3uK5B3734i3ui5Yd+wOJV1cpE4JnivPD283GU/A==} + engines: {node: '>=0.10.0'} + dependencies: + repeating: 2.0.1 + dev: false + + /detect-indent@6.1.0: + resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} + engines: {node: '>=8'} + dev: true + + /detect-indent@7.0.1: + resolution: {integrity: sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g==} + engines: {node: '>=12.20'} + dev: true + + /detect-libc@1.0.3: + resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} + engines: {node: '>=0.10'} + hasBin: true + dev: false + optional: true + + /detect-newline@4.0.0: + resolution: {integrity: sha512-1aXUEPdfGdzVPFpzGJJNgq9o81bGg1s09uxTWsqBlo9PI332uyJRQq13+LK/UN4JfxJbFdCXonUFQ9R/p7yCtw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true + + /detect-node@2.0.3: + resolution: {integrity: sha512-64uDTOK+fKEa6XoSbkkDoeAX8Ep1XhwxwZtL1aw1En5p5UOK/ekJoFqd5BB1o+uOvF1iHVv6qDUxdOQ/VgWEQg==} + dev: false + + /diffie-hellman@5.0.3: + resolution: {integrity: sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==} + dependencies: + bn.js: 4.12.0 + miller-rabin: 4.0.1 + randombytes: 2.1.0 + dev: false + optional: true + + /dijkstrajs@1.0.2: + resolution: {integrity: sha512-QV6PMaHTCNmKSeP6QoXhVTw9snc9VD8MulTT0Bd99Pacp4SS1cjcrYPgBPmibqKVtMJJfqC6XvOXgPMEEPH/fg==} + dev: false + + /dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + dependencies: + path-type: 4.0.0 + + /doctrine@2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} + dependencies: + esutils: 2.0.3 + dev: true + + /doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + dependencies: + esutils: 2.0.3 + + /dom-helpers@5.2.1: + resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==} + dependencies: + '@babel/runtime': 7.21.5 + csstype: 3.1.1 + + /dom-walk@0.1.2: + resolution: {integrity: sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==} + + /dotignore@0.1.2: + resolution: {integrity: sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw==} + hasBin: true + dependencies: + minimatch: 3.1.2 + dev: false + + /drbg.js@1.0.1: + resolution: {integrity: sha512-F4wZ06PvqxYLFEZKkFxTDcns9oFNk34hvmJSEwdzsxVQ8YI5YaxtACgQatkYgv2VI2CFkUd2Y+xosPQnHv809g==} + engines: {node: '>=0.10'} + dependencies: + browserify-aes: 1.2.0 + create-hash: 1.2.0 + create-hmac: 1.1.7 + dev: false + + /duplexer3@0.1.5: + resolution: {integrity: sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==} + dev: false + optional: true + + /ecc-jsbn@0.1.2: + resolution: {integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==} + dependencies: + jsbn: 0.1.1 + safer-buffer: 2.1.2 + + /ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + + /electron-to-chromium@1.4.295: + resolution: {integrity: sha512-lEO94zqf1bDA3aepxwnWoHUjA8sZ+2owgcSZjYQy0+uOSEclJX0VieZC+r+wLpSxUHRd6gG32znTWmr+5iGzFw==} + + /elliptic@6.5.4: + resolution: {integrity: sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==} + dependencies: + bn.js: 4.12.0 + brorand: 1.1.0 + hash.js: 1.1.7 + hmac-drbg: 1.0.1 + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + minimalistic-crypto-utils: 1.0.1 + + /emoji-regex@7.0.3: + resolution: {integrity: sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==} + dev: false + + /emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + dev: true + + /enc-utils@3.0.0: + resolution: {integrity: sha512-e57t/Z2HzWOLwOp7DZcV0VMEY8t7ptWwsxyp6kM2b2zrk6JqIpXxzkruHAMiBsy5wg9jp/183GdiRXCvBtzsYg==} + dependencies: + is-typedarray: 1.0.0 + typedarray-to-buffer: 3.1.5 + dev: false + + /encodeurl@1.0.2: + resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} + engines: {node: '>= 0.8'} + + /encoding-down@5.0.4: + resolution: {integrity: sha512-8CIZLDcSKxgzT+zX8ZVfgNbu8Md2wq/iqa1Y7zyVR18QBEAc0Nmzuvj/N5ykSKpfGzjM8qxbaFntLPwnVoUhZw==} + engines: {node: '>=6'} + dependencies: + abstract-leveldown: 5.0.0 + inherits: 2.0.4 + level-codec: 9.0.2 + level-errors: 2.0.1 + xtend: 4.0.2 + dev: false + + /encoding@0.1.13: + resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} + dependencies: + iconv-lite: 0.6.3 + dev: false + + /end-of-stream@1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + dependencies: + once: 1.4.0 + + /enhanced-resolve@5.12.0: + resolution: {integrity: sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==} + engines: {node: '>=10.13.0'} + dependencies: + graceful-fs: 4.2.10 + tapable: 2.2.1 + dev: true + + /enquirer@2.3.6: + resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} + engines: {node: '>=8.6'} + dependencies: + ansi-colors: 4.1.3 + dev: true + + /entities@4.4.0: + resolution: {integrity: sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==} + engines: {node: '>=0.12'} + dev: true + + /errno@0.1.8: + resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==} + hasBin: true + dependencies: + prr: 1.0.1 + dev: false + + /error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + dependencies: + is-arrayish: 0.2.1 + + /es-abstract@1.21.1: + resolution: {integrity: sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + es-set-tostringtag: 2.0.1 + es-to-primitive: 1.2.1 + function-bind: 1.1.1 + function.prototype.name: 1.1.5 + get-intrinsic: 1.2.0 + get-symbol-description: 1.0.0 + globalthis: 1.0.3 + gopd: 1.0.1 + has: 1.0.3 + has-property-descriptors: 1.0.0 + has-proto: 1.0.1 + has-symbols: 1.0.3 + internal-slot: 1.0.4 + is-array-buffer: 3.0.1 + is-callable: 1.2.7 + is-negative-zero: 2.0.2 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.2 + is-string: 1.0.7 + is-typed-array: 1.1.10 + is-weakref: 1.0.2 + object-inspect: 1.12.3 + object-keys: 1.1.1 + object.assign: 4.1.4 + regexp.prototype.flags: 1.4.3 + safe-regex-test: 1.0.0 + string.prototype.trimend: 1.0.6 + string.prototype.trimstart: 1.0.6 + typed-array-length: 1.0.4 + unbox-primitive: 1.0.2 + which-typed-array: 1.1.9 + + /es-array-method-boxes-properly@1.0.0: + resolution: {integrity: sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==} + dev: false + + /es-set-tostringtag@2.0.1: + resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.0 + has: 1.0.3 + has-tostringtag: 1.0.0 + + /es-shim-unscopables@1.0.0: + resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} + dependencies: + has: 1.0.3 + dev: true + + /es-to-primitive@1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} + dependencies: + is-callable: 1.2.7 + is-date-object: 1.0.5 + is-symbol: 1.0.4 + + /es5-ext@0.10.62: + resolution: {integrity: sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==} + engines: {node: '>=0.10'} + requiresBuild: true + dependencies: + es6-iterator: 2.0.3 + es6-symbol: 3.1.3 + next-tick: 1.1.0 + + /es6-iterator@2.0.3: + resolution: {integrity: sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==} + dependencies: + d: 1.0.1 + es5-ext: 0.10.62 + es6-symbol: 3.1.3 + + /es6-promise@4.2.8: + resolution: {integrity: sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==} + + /es6-symbol@3.1.3: + resolution: {integrity: sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==} + dependencies: + d: 1.0.1 + ext: 1.7.0 + + /esbuild@0.16.17: + resolution: {integrity: sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.16.17 + '@esbuild/android-arm64': 0.16.17 + '@esbuild/android-x64': 0.16.17 + '@esbuild/darwin-arm64': 0.16.17 + '@esbuild/darwin-x64': 0.16.17 + '@esbuild/freebsd-arm64': 0.16.17 + '@esbuild/freebsd-x64': 0.16.17 + '@esbuild/linux-arm': 0.16.17 + '@esbuild/linux-arm64': 0.16.17 + '@esbuild/linux-ia32': 0.16.17 + '@esbuild/linux-loong64': 0.16.17 + '@esbuild/linux-mips64el': 0.16.17 + '@esbuild/linux-ppc64': 0.16.17 + '@esbuild/linux-riscv64': 0.16.17 + '@esbuild/linux-s390x': 0.16.17 + '@esbuild/linux-x64': 0.16.17 + '@esbuild/netbsd-x64': 0.16.17 + '@esbuild/openbsd-x64': 0.16.17 + '@esbuild/sunos-x64': 0.16.17 + '@esbuild/win32-arm64': 0.16.17 + '@esbuild/win32-ia32': 0.16.17 + '@esbuild/win32-x64': 0.16.17 + dev: true + + /escalade@3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + engines: {node: '>=6'} + + /escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + + /escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + + /escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + /eslint-config-prettier@8.6.0(eslint@8.34.0): + resolution: {integrity: sha512-bAF0eLpLVqP5oEVUFKpMA+NnRFICwn9X8B5jrR9FcqnYBuPbqWEjTEspPWMj5ye6czoSLDweCzSo3Ko7gGrZaA==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + dependencies: + eslint: 8.34.0 + dev: true + + /eslint-config-turbo@1.10.3(eslint@8.34.0): + resolution: {integrity: sha512-ggzPfTJfMsMS383oZ4zfTP1zQvyMyiigOQJRUnLt1nqII6SKkTzdKZdwmXRDHU24KFwUfEFtT6c8vnm2VhL0uQ==} + peerDependencies: + eslint: '>6.6.0' + dependencies: + eslint: 8.34.0 + eslint-plugin-turbo: 1.10.3(eslint@8.34.0) + dev: true + + /eslint-import-resolver-node@0.3.7: + resolution: {integrity: sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==} + dependencies: + debug: 3.2.7 + is-core-module: 2.11.0 + resolve: 1.22.1 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-import-resolver-typescript@3.5.3(eslint-plugin-import@2.27.5)(eslint@8.34.0): + resolution: {integrity: sha512-njRcKYBc3isE42LaTcJNVANR3R99H9bAxBDMNDr2W7yq5gYPxbU3MkdhsQukxZ/Xg9C2vcyLlDsbKfRDg0QvCQ==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + eslint: '*' + eslint-plugin-import: '*' + dependencies: + debug: 4.3.4 + enhanced-resolve: 5.12.0 + eslint: 8.34.0 + eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.52.0)(eslint-import-resolver-typescript@3.5.3)(eslint@8.34.0) + get-tsconfig: 4.4.0 + globby: 13.1.3 + is-core-module: 2.11.0 + is-glob: 4.0.3 + synckit: 0.8.5 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-module-utils@2.7.4(@typescript-eslint/parser@5.52.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.3)(eslint@8.34.0): + resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + dependencies: + '@typescript-eslint/parser': 5.52.0(eslint@8.34.0)(typescript@4.9.5) + debug: 3.2.7 + eslint: 8.34.0 + eslint-import-resolver-node: 0.3.7 + eslint-import-resolver-typescript: 3.5.3(eslint-plugin-import@2.27.5)(eslint@8.34.0) + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.52.0)(eslint-import-resolver-typescript@3.5.3)(eslint@8.34.0): + resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + dependencies: + '@typescript-eslint/parser': 5.52.0(eslint@8.34.0)(typescript@4.9.5) + array-includes: 3.1.6 + array.prototype.flat: 1.3.1 + array.prototype.flatmap: 1.3.1 + debug: 3.2.7 + doctrine: 2.1.0 + eslint: 8.34.0 + eslint-import-resolver-node: 0.3.7 + eslint-module-utils: 2.7.4(@typescript-eslint/parser@5.52.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.3)(eslint@8.34.0) + has: 1.0.3 + is-core-module: 2.11.0 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.values: 1.1.6 + resolve: 1.22.1 + semver: 6.3.0 + tsconfig-paths: 3.14.1 + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + dev: true + + /eslint-plugin-prettier@4.2.1(eslint-config-prettier@8.6.0)(eslint@8.34.0)(prettier@2.8.4): + resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==} + engines: {node: '>=12.0.0'} + peerDependencies: + eslint: '>=7.28.0' + eslint-config-prettier: '*' + prettier: '>=2.0.0' + peerDependenciesMeta: + eslint-config-prettier: + optional: true + dependencies: + eslint: 8.34.0 + eslint-config-prettier: 8.6.0(eslint@8.34.0) + prettier: 2.8.4 + prettier-linter-helpers: 1.0.0 + dev: true + + /eslint-plugin-react-hooks@4.6.0(eslint@8.34.0): + resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} + engines: {node: '>=10'} + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + dependencies: + eslint: 8.34.0 + dev: true + + /eslint-plugin-react@7.32.2(eslint@8.34.0): + resolution: {integrity: sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==} + engines: {node: '>=4'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + dependencies: + array-includes: 3.1.6 + array.prototype.flatmap: 1.3.1 + array.prototype.tosorted: 1.1.1 + doctrine: 2.1.0 + eslint: 8.34.0 + estraverse: 5.3.0 + jsx-ast-utils: 3.3.3 + minimatch: 3.1.2 + object.entries: 1.1.6 + object.fromentries: 2.0.6 + object.hasown: 1.1.2 + object.values: 1.1.6 + prop-types: 15.8.1 + resolve: 2.0.0-next.4 + semver: 6.3.0 + string.prototype.matchall: 4.0.8 + dev: true + + /eslint-plugin-turbo@1.10.3(eslint@8.34.0): + resolution: {integrity: sha512-g3Mnnk7el1FqxHfqbE/MayLvCsYjA/vKmAnUj66kV4AlM7p/EZqdt42NMcMSKtDVEm0w+utQkkzWG2Xsa0Pd/g==} + peerDependencies: + eslint: '>6.6.0' + dependencies: + eslint: 8.34.0 + dev: true + + /eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 + dev: true + + /eslint-scope@7.1.1: + resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + /eslint-utils@3.0.0(eslint@8.34.0): + resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} + engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} + peerDependencies: + eslint: '>=5' + dependencies: + eslint: 8.34.0 + eslint-visitor-keys: 2.1.0 + + /eslint-visitor-keys@2.1.0: + resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} + engines: {node: '>=10'} + + /eslint-visitor-keys@3.3.0: + resolution: {integrity: sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + /eslint-visitor-keys@3.4.1: + resolution: {integrity: sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + /eslint@8.34.0: + resolution: {integrity: sha512-1Z8iFsucw+7kSqXNZVslXS8Ioa4u2KM7GPwuKtkTFAqZ/cHMcEaR+1+Br0wLlot49cNxIiZk5wp8EAbPcYZxTg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + dependencies: + '@eslint/eslintrc': 1.4.1 + '@humanwhocodes/config-array': 0.11.8 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.4 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.1.1 + eslint-utils: 3.0.0(eslint@8.34.0) + eslint-visitor-keys: 3.3.0 + espree: 9.4.1 + esquery: 1.4.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.20.0 + grapheme-splitter: 1.0.4 + ignore: 5.2.4 + import-fresh: 3.3.0 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-sdsl: 4.3.0 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.1 + regexpp: 3.2.0 + strip-ansi: 6.0.1 + strip-json-comments: 3.1.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + + /espree@9.4.1: + resolution: {integrity: sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + acorn: 8.8.2 + acorn-jsx: 5.3.2(acorn@8.8.2) + eslint-visitor-keys: 3.4.1 + + /esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /esquery@1.4.0: + resolution: {integrity: sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==} + engines: {node: '>=0.10'} + dependencies: + estraverse: 5.3.0 + + /esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + dependencies: + estraverse: 5.3.0 + + /estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} + dev: true + + /estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + /estree-walker@0.6.1: + resolution: {integrity: sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==} + + /estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + dev: true + + /esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + /etag@1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} + + /eth-block-tracker@3.0.1: + resolution: {integrity: sha512-WUVxWLuhMmsfenfZvFO5sbl1qFY2IqUlw/FPVmjjdElpqLsZtSG+wPe9Dz7W/sB6e80HgFKknOmKk2eNlznHug==} + dependencies: + eth-query: 2.1.2 + ethereumjs-tx: 1.3.7 + ethereumjs-util: 5.2.0 + ethjs-util: 0.1.6 + json-rpc-engine: 3.8.0 + pify: 2.3.0 + tape: 4.16.2 + transitivePeerDependencies: + - supports-color + dev: false + + /eth-block-tracker@4.4.3(@babel/core@7.20.12): + resolution: {integrity: sha512-A8tG4Z4iNg4mw5tP1Vung9N9IjgMNqpiMoJ/FouSFwNCGHv2X0mmOYwtQOJzki6XN7r7Tyo01S29p7b224I4jw==} + dependencies: + '@babel/plugin-transform-runtime': 7.21.0(@babel/core@7.20.12) + '@babel/runtime': 7.21.5 + eth-query: 2.1.2 + json-rpc-random-id: 1.0.1 + pify: 3.0.0 + safe-event-emitter: 1.0.1 + transitivePeerDependencies: + - '@babel/core' + - supports-color + dev: false + + /eth-ens-namehash@2.0.8: + resolution: {integrity: sha512-VWEI1+KJfz4Km//dadyvBBoBeSQ0MHTXPvr8UIXiLW6IanxvAV+DmlZAijZwAyggqGUfwQBeHf7tc9wzc1piSw==} + dependencies: + idna-uts46-hx: 2.3.1 + js-sha3: 0.5.7 + + /eth-json-rpc-filters@4.2.2: + resolution: {integrity: sha512-DGtqpLU7bBg63wPMWg1sCpkKCf57dJ+hj/k3zF26anXMzkmtSBDExL8IhUu7LUd34f0Zsce3PYNO2vV2GaTzaw==} + dependencies: + '@metamask/safe-event-emitter': 2.0.0 + async-mutex: 0.2.6 + eth-json-rpc-middleware: 6.0.0 + eth-query: 2.1.2 + json-rpc-engine: 6.1.0 + pify: 5.0.0 + transitivePeerDependencies: + - encoding + dev: false + + /eth-json-rpc-infura@3.2.1: + resolution: {integrity: sha512-W7zR4DZvyTn23Bxc0EWsq4XGDdD63+XPUCEhV2zQvQGavDVC4ZpFDK4k99qN7bd7/fjj37+rxmuBOBeIqCA5Mw==} + dependencies: + cross-fetch: 2.2.6 + eth-json-rpc-middleware: 1.6.0 + json-rpc-engine: 3.8.0 + json-rpc-error: 2.0.0 + transitivePeerDependencies: + - encoding + - supports-color + dev: false + + /eth-json-rpc-infura@5.1.0: + resolution: {integrity: sha512-THzLye3PHUSGn1EXMhg6WTLW9uim7LQZKeKaeYsS9+wOBcamRiCQVGHa6D2/4P0oS0vSaxsBnU/J6qvn0MPdow==} + dependencies: + eth-json-rpc-middleware: 6.0.0 + eth-rpc-errors: 3.0.0 + json-rpc-engine: 5.4.0 + node-fetch: 2.6.9 + transitivePeerDependencies: + - encoding + dev: false + + /eth-json-rpc-middleware@1.6.0: + resolution: {integrity: sha512-tDVCTlrUvdqHKqivYMjtFZsdD7TtpNLBCfKAcOpaVs7orBMS/A8HWro6dIzNtTZIR05FAbJ3bioFOnZpuCew9Q==} + dependencies: + async: 2.6.4 + eth-query: 2.1.2 + eth-tx-summary: 3.2.4 + ethereumjs-block: 1.7.1 + ethereumjs-tx: 1.3.7 + ethereumjs-util: 5.2.0 + ethereumjs-vm: 2.6.0 + fetch-ponyfill: 4.1.0 + json-rpc-engine: 3.8.0 + json-rpc-error: 2.0.0 + json-stable-stringify: 1.0.2 + promise-to-callback: 1.0.0 + tape: 4.16.2 + transitivePeerDependencies: + - supports-color + dev: false + + /eth-json-rpc-middleware@5.1.0: + resolution: {integrity: sha512-0uq8nWgHWLKA0sMhVqViue3vSEBVuQXyk2yzjhe8GSo/dGpJUtmYN1DvDF1LQtEhHI4N/G6MKPbiR/aWSRkPmg==} + dependencies: + btoa: 1.2.1 + clone: 2.1.2 + eth-query: 2.1.2 + eth-rpc-errors: 3.0.0 + eth-sig-util: 1.4.2 + ethereumjs-block: 1.7.1 + ethereumjs-tx: 1.3.7 + ethereumjs-util: 5.2.0 + ethereumjs-vm: 2.6.0 + json-rpc-engine: 5.4.0 + json-stable-stringify: 1.0.2 + node-fetch: 2.6.9 + pify: 3.0.0 + safe-event-emitter: 1.0.1 + transitivePeerDependencies: + - encoding + dev: false + + /eth-json-rpc-middleware@6.0.0: + resolution: {integrity: sha512-qqBfLU2Uq1Ou15Wox1s+NX05S9OcAEL4JZ04VZox2NS0U+RtCMjSxzXhLFWekdShUPZ+P8ax3zCO2xcPrp6XJQ==} + dependencies: + btoa: 1.2.1 + clone: 2.1.2 + eth-query: 2.1.2 + eth-rpc-errors: 3.0.0 + eth-sig-util: 1.4.2 + ethereumjs-util: 5.2.0 + json-rpc-engine: 5.4.0 + json-stable-stringify: 1.0.2 + node-fetch: 2.6.9 + pify: 3.0.0 + safe-event-emitter: 1.0.1 + transitivePeerDependencies: + - encoding + dev: false + + /eth-lib@0.1.29: + resolution: {integrity: sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ==} + dependencies: + bn.js: 4.12.0 + elliptic: 6.5.4 + nano-json-stream-parser: 0.1.2 + servify: 0.1.12 + ws: 3.3.3 + xhr-request-promise: 0.1.3 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + /eth-lib@0.2.8: + resolution: {integrity: sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==} + dependencies: + bn.js: 4.12.0 + elliptic: 6.5.4 + xhr-request-promise: 0.1.3 + + /eth-provider@0.2.5: + resolution: {integrity: sha512-brZFNAYY5Js8yBeyk/ukOJQpClvOXrWFI2A+4HJrBu7rPuUIGHiQ7zmbyhYaRg5Xvkkyi9vw5Fvlt/8I6xvHDQ==} + dependencies: + ethereum-provider: 0.0.6 + oboe: 2.1.4 + uuid: 3.3.2 + ws: 7.1.2 + xhr2-cookies: 1.1.0 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + dev: false + + /eth-query@2.1.2: + resolution: {integrity: sha512-srES0ZcvwkR/wd5OQBRA1bIJMww1skfGS0s8wlwK3/oNP4+wnds60krvu5R1QbpRQjMmpG5OMIWro5s7gvDPsA==} + dependencies: + json-rpc-random-id: 1.0.1 + xtend: 4.0.2 + dev: false + + /eth-rpc-errors@3.0.0: + resolution: {integrity: sha512-iPPNHPrLwUlR9xCSYm7HHQjWBasor3+KZfRvwEWxMz3ca0yqnlBeJrnyphkGIXZ4J7AMAaOLmwy4AWhnxOiLxg==} + dependencies: + fast-safe-stringify: 2.1.1 + dev: false + + /eth-rpc-errors@4.0.2: + resolution: {integrity: sha512-n+Re6Gu8XGyfFy1it0AwbD1x0MUzspQs0D5UiPs1fFPCr6WAwZM+vbIhXheBFrpgosqN9bs5PqlB4Q61U/QytQ==} + dependencies: + fast-safe-stringify: 2.1.1 + dev: false + + /eth-rpc-errors@4.0.3: + resolution: {integrity: sha512-Z3ymjopaoft7JDoxZcEb3pwdGh7yiYMhOwm2doUt6ASXlMavpNlK6Cre0+IMl2VSGyEU9rkiperQhp5iRxn5Pg==} + dependencies: + fast-safe-stringify: 2.1.1 + dev: false + + /eth-sig-util@1.4.2: + resolution: {integrity: sha512-iNZ576iTOGcfllftB73cPB5AN+XUQAT/T8xzsILsghXC1o8gJUqe3RHlcDqagu+biFpYQ61KQrZZJza8eRSYqw==} + deprecated: Deprecated in favor of '@metamask/eth-sig-util' + dependencies: + ethereumjs-abi: github.com/ethereumjs/ethereumjs-abi/ee3994657fa7a427238e6ba92a84d0b529bbcde0 + ethereumjs-util: 5.2.0 + dev: false + + /eth-sig-util@2.5.3: + resolution: {integrity: sha512-KpXbCKmmBUNUTGh9MRKmNkIPietfhzBqqYqysDavLseIiMUGl95k6UcPEkALAZlj41e9E6yioYXc1PC333RKqw==} + deprecated: Deprecated in favor of '@metamask/eth-sig-util' + dependencies: + buffer: 5.7.1 + elliptic: 6.5.4 + ethereumjs-abi: 0.6.8 + ethereumjs-util: 5.2.0 + tweetnacl: 1.0.3 + tweetnacl-util: 0.15.1 + dev: false + + /eth-sig-util@3.0.0: + resolution: {integrity: sha512-4eFkMOhpGbTxBQ3AMzVf0haUX2uTur7DpWiHzWyTURa28BVJJtOkcb9Ok5TV0YvEPG61DODPW7ZUATbJTslioQ==} + deprecated: Deprecated in favor of '@metamask/eth-sig-util' + dependencies: + buffer: 5.7.1 + elliptic: 6.5.4 + ethereumjs-abi: 0.6.8 + ethereumjs-util: 5.2.0 + tweetnacl: 1.0.3 + tweetnacl-util: 0.15.1 + dev: false + + /eth-tx-summary@3.2.4: + resolution: {integrity: sha512-NtlDnaVZah146Rm8HMRUNMgIwG/ED4jiqk0TME9zFheMl1jOp6jL1m0NKGjJwehXQ6ZKCPr16MTr+qspKpEXNg==} + dependencies: + async: 2.6.4 + clone: 2.1.2 + concat-stream: 1.6.2 + end-of-stream: 1.4.4 + eth-query: 2.1.2 + ethereumjs-block: 1.7.1 + ethereumjs-tx: 1.3.7 + ethereumjs-util: 5.2.0 + ethereumjs-vm: 2.6.0 + through2: 2.0.5 + dev: false + + /ethashjs@0.0.8: + resolution: {integrity: sha512-/MSbf/r2/Ld8o0l15AymjOTlPqpN8Cr4ByUEA9GtR4x0yAh3TdtDzEg29zMjXCNPI7u6E5fOQdj/Cf9Tc7oVNw==} + deprecated: 'New package name format for new versions: @ethereumjs/ethash. Please update.' + dependencies: + async: 2.6.4 + buffer-xor: 2.0.2 + ethereumjs-util: 7.1.5 + miller-rabin: 4.0.1 + dev: false + + /ethereum-bloom-filters@1.0.10: + resolution: {integrity: sha512-rxJ5OFN3RwjQxDcFP2Z5+Q9ho4eIdEmSc2ht0fCu8Se9nbXjZ7/031uXoUYJ87KHCOdVeiUuwSnoS7hmYAGVHA==} + dependencies: + js-sha3: 0.8.0 + + /ethereum-common@0.0.18: + resolution: {integrity: sha512-EoltVQTRNg2Uy4o84qpa2aXymXDJhxm7eos/ACOg0DG4baAbMjhbdAEsx9GeE8sC3XCxnYvrrzZDH8D8MtA2iQ==} + dev: false + + /ethereum-common@0.2.0: + resolution: {integrity: sha512-XOnAR/3rntJgbCdGhqdaLIxDLWKLmsZOGhHdBKadEr6gEnJLH52k93Ou+TUdFaPN3hJc3isBZBal3U/XZ15abA==} + dev: false + + /ethereum-cryptography@0.1.3: + resolution: {integrity: sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==} + dependencies: + '@types/pbkdf2': 3.1.0 + '@types/secp256k1': 4.0.3 + blakejs: 1.2.1 + browserify-aes: 1.2.0 + bs58check: 2.1.2 + create-hash: 1.2.0 + create-hmac: 1.1.7 + hash.js: 1.1.7 + keccak: 3.0.3 + pbkdf2: 3.1.2 + randombytes: 2.1.0 + safe-buffer: 5.2.1 + scrypt-js: 3.0.1 + secp256k1: 4.0.3 + setimmediate: 1.0.5 + + /ethereum-cryptography@1.2.0: + resolution: {integrity: sha512-6yFQC9b5ug6/17CQpCyE3k9eKBMdhyVjzUy1WkiuY/E4vj/SXDBbCw8QEIaXqf0Mf2SnY6RmpDcwlUmBSS0EJw==} + dependencies: + '@noble/hashes': 1.2.0 + '@noble/secp256k1': 1.7.1 + '@scure/bip32': 1.1.5 + '@scure/bip39': 1.1.1 + + /ethereum-provider@0.0.6: + resolution: {integrity: sha512-DqtdXNHGi/QtOjEovNOegVVQTd8/NnH9rP27R5SU3j2LKECZbcLGIZ3Z9Ln1SDaeUC5YJGJFYQCUUjfIi7NNyQ==} + dev: false + + /ethereum-types@2.1.6: + resolution: {integrity: sha512-xaN5TxLvkdFCGjGfUQ5wV00GHzDHStozP1j+K/YdmUeQXVGiD15cogYPhBVWG3pQJM/aBjtYrpMrjywvKkNC4A==} + engines: {node: '>=6.12'} + dependencies: + '@types/node': 18.15.3 + bignumber.js: 8.0.2 + dev: false + + /ethereumjs-abi@0.6.8: + resolution: {integrity: sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==} + dependencies: + bn.js: 4.12.0 + ethereumjs-util: 6.2.1 + dev: false + + /ethereumjs-account@2.0.5: + resolution: {integrity: sha512-bgDojnXGjhMwo6eXQC0bY6UK2liSFUSMwwylOmQvZbSl/D7NXQ3+vrGO46ZeOgjGfxXmgIeVNDIiHw7fNZM4VA==} + dependencies: + ethereumjs-util: 5.2.0 + rlp: 2.2.7 + safe-buffer: 5.2.1 + dev: false + + /ethereumjs-account@3.0.0: + resolution: {integrity: sha512-WP6BdscjiiPkQfF9PVfMcwx/rDvfZTjFKY0Uwc09zSQr9JfIVH87dYIJu0gNhBhpmovV4yq295fdllS925fnBA==} + deprecated: Please use Util.Account class found on package ethereumjs-util@^7.0.6 https://github.com/ethereumjs/ethereumjs-util/releases/tag/v7.0.6 + dependencies: + ethereumjs-util: 6.2.1 + rlp: 2.2.7 + safe-buffer: 5.2.1 + dev: false + + /ethereumjs-block@1.7.1: + resolution: {integrity: sha512-B+sSdtqm78fmKkBq78/QLKJbu/4Ts4P2KFISdgcuZUPDm9x+N7qgBPIIFUGbaakQh8bzuquiRVbdmvPKqbILRg==} + deprecated: 'New package name format for new versions: @ethereumjs/block. Please update.' + dependencies: + async: 2.6.4 + ethereum-common: 0.2.0 + ethereumjs-tx: 1.3.7 + ethereumjs-util: 5.2.0 + merkle-patricia-tree: 2.3.2 + dev: false + + /ethereumjs-block@2.2.2: + resolution: {integrity: sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg==} + deprecated: 'New package name format for new versions: @ethereumjs/block. Please update.' + dependencies: + async: 2.6.4 + ethereumjs-common: 1.5.0 + ethereumjs-tx: 2.1.2 + ethereumjs-util: 5.2.0 + merkle-patricia-tree: 2.3.2 + dev: false + + /ethereumjs-blockchain@4.0.4: + resolution: {integrity: sha512-zCxaRMUOzzjvX78DTGiKjA+4h2/sF0OYL1QuPux0DHpyq8XiNoF5GYHtb++GUxVlMsMfZV7AVyzbtgcRdIcEPQ==} + deprecated: 'New package name format for new versions: @ethereumjs/blockchain. Please update.' + dependencies: + async: 2.6.4 + ethashjs: 0.0.8 + ethereumjs-block: 2.2.2 + ethereumjs-common: 1.5.0 + ethereumjs-util: 6.2.1 + flow-stoplight: 1.0.0 + level-mem: 3.0.1 + lru-cache: 5.1.1 + rlp: 2.2.7 + semaphore: 1.1.0 + dev: false + + /ethereumjs-common@1.5.0: + resolution: {integrity: sha512-SZOjgK1356hIY7MRj3/ma5qtfr/4B5BL+G4rP/XSMYr2z1H5el4RX5GReYCKmQmYI/nSBmRnwrZ17IfHuG0viQ==} + deprecated: 'New package name format for new versions: @ethereumjs/common. Please update.' + dev: false + + /ethereumjs-common@1.5.2: + resolution: {integrity: sha512-hTfZjwGX52GS2jcVO6E2sx4YuFnf0Fhp5ylo4pEPhEffNln7vS59Hr5sLnp3/QCazFLluuBZ+FZ6J5HTp0EqCA==} + deprecated: 'New package name format for new versions: @ethereumjs/common. Please update.' + dev: false + + /ethereumjs-tx@1.3.7: + resolution: {integrity: sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==} + deprecated: 'New package name format for new versions: @ethereumjs/tx. Please update.' + dependencies: + ethereum-common: 0.0.18 + ethereumjs-util: 5.2.0 + dev: false + + /ethereumjs-tx@2.1.2: + resolution: {integrity: sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw==} + deprecated: 'New package name format for new versions: @ethereumjs/tx. Please update.' + dependencies: + ethereumjs-common: 1.5.0 + ethereumjs-util: 6.2.1 + dev: false + + /ethereumjs-util@5.2.0: + resolution: {integrity: sha512-CJAKdI0wgMbQFLlLRtZKGcy/L6pzVRgelIZqRqNbuVFM3K9VEnyfbcvz0ncWMRNCe4kaHWjwRYQcYMucmwsnWA==} + dependencies: + bn.js: 4.12.0 + create-hash: 1.2.0 + ethjs-util: 0.1.6 + keccak: 1.4.0 + rlp: 2.2.7 + safe-buffer: 5.2.1 + secp256k1: 3.8.0 + dev: false + + /ethereumjs-util@6.2.1: + resolution: {integrity: sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==} + dependencies: + '@types/bn.js': 4.11.6 + bn.js: 4.12.0 + create-hash: 1.2.0 + elliptic: 6.5.4 + ethereum-cryptography: 0.1.3 + ethjs-util: 0.1.6 + rlp: 2.2.7 + dev: false + + /ethereumjs-util@7.1.5: + resolution: {integrity: sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==} + engines: {node: '>=10.0.0'} + dependencies: + '@types/bn.js': 5.1.1 + bn.js: 5.2.1 + create-hash: 1.2.0 + ethereum-cryptography: 0.1.3 + rlp: 2.2.7 + + /ethereumjs-vm@2.6.0: + resolution: {integrity: sha512-r/XIUik/ynGbxS3y+mvGnbOKnuLo40V5Mj1J25+HEO63aWYREIqvWeRO/hnROlMBE5WoniQmPmhiaN0ctiHaXw==} + deprecated: 'New package name format for new versions: @ethereumjs/vm. Please update.' + dependencies: + async: 2.6.4 + async-eventemitter: 0.2.4 + ethereumjs-account: 2.0.5 + ethereumjs-block: 2.2.2 + ethereumjs-common: 1.5.2 + ethereumjs-util: 6.2.1 + fake-merkle-patricia-tree: 1.0.1 + functional-red-black-tree: 1.0.1 + merkle-patricia-tree: 2.3.2 + rustbn.js: 0.2.0 + safe-buffer: 5.2.1 + dev: false + + /ethereumjs-vm@4.2.0: + resolution: {integrity: sha512-X6qqZbsY33p5FTuZqCnQ4+lo957iUJMM6Mpa6bL4UW0dxM6WmDSHuI4j/zOp1E2TDKImBGCJA9QPfc08PaNubA==} + deprecated: 'New package name format for new versions: @ethereumjs/vm. Please update.' + dependencies: + async: 2.6.4 + async-eventemitter: 0.2.4 + core-js-pure: 3.29.0 + ethereumjs-account: 3.0.0 + ethereumjs-block: 2.2.2 + ethereumjs-blockchain: 4.0.4 + ethereumjs-common: 1.5.0 + ethereumjs-tx: 2.1.2 + ethereumjs-util: 6.2.1 + fake-merkle-patricia-tree: 1.0.1 + functional-red-black-tree: 1.0.1 + merkle-patricia-tree: 2.3.2 + rustbn.js: 0.2.0 + safe-buffer: 5.2.1 + util.promisify: 1.1.1 + dev: false + + /ethereumjs-wallet@0.6.5: + resolution: {integrity: sha512-MDwjwB9VQVnpp/Dc1XzA6J1a3wgHQ4hSvA1uWNatdpOrtCbPVuQSKSyRnjLvS0a+KKMw2pvQ9Ybqpb3+eW8oNA==} + requiresBuild: true + dependencies: + aes-js: 3.1.2 + bs58check: 2.1.2 + ethereum-cryptography: 0.1.3 + ethereumjs-util: 6.2.1 + randombytes: 2.1.0 + safe-buffer: 5.2.1 + scryptsy: 1.2.1 + utf8: 3.0.0 + uuid: 3.4.0 + dev: false + optional: true + + /ethereumjs-wallet@1.0.2: + resolution: {integrity: sha512-CCWV4RESJgRdHIvFciVQFnCHfqyhXWchTPlkfp28Qc53ufs+doi5I/cV2+xeK9+qEo25XCWfP9MiL+WEPAZfdA==} + dependencies: + aes-js: 3.1.2 + bs58check: 2.1.2 + ethereum-cryptography: 0.1.3 + ethereumjs-util: 7.1.5 + randombytes: 2.1.0 + scrypt-js: 3.0.1 + utf8: 3.0.0 + uuid: 8.3.2 + dev: false + + /ethers@4.0.49: + resolution: {integrity: sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==} + dependencies: + aes-js: 3.0.0 + bn.js: 4.12.0 + elliptic: 6.5.4 + hash.js: 1.1.3 + js-sha3: 0.5.7 + scrypt-js: 2.0.4 + setimmediate: 1.0.4 + uuid: 2.0.1 + xmlhttprequest: 1.8.0 + dev: false + + /ethjs-unit@0.1.6: + resolution: {integrity: sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw==} + engines: {node: '>=6.5.0', npm: '>=3'} + dependencies: + bn.js: 4.11.6 + number-to-bn: 1.7.0 + + /ethjs-util@0.1.6: + resolution: {integrity: sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==} + engines: {node: '>=6.5.0', npm: '>=3'} + dependencies: + is-hex-prefixed: 1.0.0 + strip-hex-prefix: 1.0.0 + dev: false + + /eventemitter3@4.0.4: + resolution: {integrity: sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==} + + /eventemitter3@4.0.7: + resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + dev: false + + /events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} + dev: false + + /evp_bytestokey@1.0.3: + resolution: {integrity: sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==} + dependencies: + md5.js: 1.3.5 + safe-buffer: 5.2.1 + + /expand-brackets@2.1.4: + resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==} + engines: {node: '>=0.10.0'} + dependencies: + debug: 2.6.9 + define-property: 0.2.5 + extend-shallow: 2.0.1 + posix-character-classes: 0.1.1 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + + /expand-template@2.0.3: + resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} + engines: {node: '>=6'} + dev: false + optional: true + + /express@4.16.4: + resolution: {integrity: sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg==} + engines: {node: '>= 0.10.0'} + dependencies: + accepts: 1.3.8 + array-flatten: 1.1.1 + body-parser: 1.18.3 + content-disposition: 0.5.2 + content-type: 1.0.5 + cookie: 0.3.1 + cookie-signature: 1.0.6 + debug: 2.6.9 + depd: 1.1.2 + encodeurl: 1.0.2 + escape-html: 1.0.3 + etag: 1.8.1 + finalhandler: 1.1.1 + fresh: 0.5.2 + merge-descriptors: 1.0.1 + methods: 1.1.2 + on-finished: 2.3.0 + parseurl: 1.3.3 + path-to-regexp: 0.1.7 + proxy-addr: 2.0.7 + qs: 6.5.2 + range-parser: 1.2.1 + safe-buffer: 5.1.2 + send: 0.16.2 + serve-static: 1.13.2 + setprototypeof: 1.1.0 + statuses: 1.4.0 + type-is: 1.6.18 + utils-merge: 1.0.1 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + + /ext@1.7.0: + resolution: {integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==} + dependencies: + type: 2.7.2 + + /extend-shallow@2.0.1: + resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} + engines: {node: '>=0.10.0'} + dependencies: + is-extendable: 0.1.1 + + /extend-shallow@3.0.2: + resolution: {integrity: sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==} + engines: {node: '>=0.10.0'} + dependencies: + assign-symbols: 1.0.0 + is-extendable: 1.0.1 + + /extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + + /extendable-error@0.1.7: + resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==} + dev: true + + /external-editor@3.1.0: + resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} + engines: {node: '>=4'} + dependencies: + chardet: 0.7.0 + iconv-lite: 0.4.24 + tmp: 0.0.33 + dev: true + + /extglob@2.0.4: + resolution: {integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==} + engines: {node: '>=0.10.0'} + dependencies: + array-unique: 0.3.2 + define-property: 1.0.0 + expand-brackets: 2.1.4 + extend-shallow: 2.0.1 + fragment-cache: 0.2.1 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + + /extsprintf@1.3.0: + resolution: {integrity: sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==} + engines: {'0': node >=0.6.0} + + /fake-merkle-patricia-tree@1.0.1: + resolution: {integrity: sha512-Tgq37lkc9pUIgIKw5uitNUKcgcYL3R6JvXtKQbOf/ZSavXbidsksgp/pAY6p//uhw0I4yoMsvTSovvVIsk/qxA==} + dependencies: + checkpoint-store: 1.1.0 + dev: false + + /fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + /fast-diff@1.2.0: + resolution: {integrity: sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==} + dev: true + + /fast-glob@3.2.12: + resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + + /fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + /fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + + /fast-safe-stringify@2.1.1: + resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} + dev: false + + /fastest-levenshtein@1.0.16: + resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} + engines: {node: '>= 4.9.1'} + dev: true + + /fastq@1.15.0: + resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} + dependencies: + reusify: 1.0.4 + + /fetch-ponyfill@4.1.0: + resolution: {integrity: sha512-knK9sGskIg2T7OnYLdZ2hZXn0CtDrAIBxYQLpmEf0BqfdWnwmM1weccUl5+4EdA44tzNSFAuxITPbXtPehUB3g==} + dependencies: + node-fetch: 1.7.3 + dev: false + + /file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flat-cache: 3.0.4 + + /file-uri-to-path@1.0.0: + resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} + requiresBuild: true + dev: false + + /fill-range@4.0.0: + resolution: {integrity: sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==} + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: 2.0.1 + is-number: 3.0.0 + repeat-string: 1.6.1 + to-regex-range: 2.1.1 + + /fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + dependencies: + to-regex-range: 5.0.1 + + /finalhandler@1.1.1: + resolution: {integrity: sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==} + engines: {node: '>= 0.8'} + dependencies: + debug: 2.6.9 + encodeurl: 1.0.2 + escape-html: 1.0.3 + on-finished: 2.3.0 + parseurl: 1.3.3 + statuses: 1.4.0 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + + /find-root@1.1.0: + resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} + + /find-up@3.0.0: + resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} + engines: {node: '>=6'} + dependencies: + locate-path: 3.0.0 + dev: false + + /find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + dev: true + + /find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + + /find-yarn-workspace-root2@1.2.16: + resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} + dependencies: + micromatch: 4.0.5 + pkg-dir: 4.2.0 + dev: true + + /find-yarn-workspace-root@1.2.1: + resolution: {integrity: sha512-dVtfb0WuQG+8Ag2uWkbG79hOUzEsRrhBzgfn86g2sJPkzmcpGdghbNTfUKGTxymFrY/tLIodDzLoW9nOJ4FY8Q==} + dependencies: + fs-extra: 4.0.3 + micromatch: 3.1.10 + transitivePeerDependencies: + - supports-color + dev: false + + /flat-cache@3.0.4: + resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flatted: 3.2.7 + rimraf: 3.0.2 + + /flatted@3.2.7: + resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} + + /flow-stoplight@1.0.0: + resolution: {integrity: sha512-rDjbZUKpN8OYhB0IE/vY/I8UWO/602IIJEU/76Tv4LvYnwHCk0BCsvz4eRr9n+FQcri7L5cyaXOo0+/Kh4HisA==} + dev: false + + /follow-redirects@1.15.2: + resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + dev: false + + /follow-redirects@1.5.10: + resolution: {integrity: sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==} + engines: {node: '>=4.0'} + dependencies: + debug: 3.1.0 + transitivePeerDependencies: + - supports-color + dev: false + + /fontfaceobserver@2.3.0: + resolution: {integrity: sha512-6FPvD/IVyT4ZlNe7Wcn5Fb/4ChigpucKYSvD6a+0iMoLn2inpo711eyIcKjmDtE5XNcgAkSH9uN/nfAeZzHEfg==} + dev: false + + /for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + dependencies: + is-callable: 1.2.7 + + /for-in@1.0.2: + resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==} + engines: {node: '>=0.10.0'} + + /forever-agent@0.6.1: + resolution: {integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==} + + /form-data-encoder@1.7.1: + resolution: {integrity: sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg==} + + /form-data@2.3.3: + resolution: {integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==} + engines: {node: '>= 0.12'} + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + + /fortmatic@1.1.3: + resolution: {integrity: sha512-70gPiTuwfqEQNg4fFK5MVf3gRAW+mo2tHdiMSEt2OLKcoHWrAn63e/r245dPJAw4Qvz7PhkYF/bTx6ga50zWog==} + dependencies: + '@babel/runtime': 7.3.4 + dev: false + + /forwarded@0.2.0: + resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} + engines: {node: '>= 0.6'} + + /fragment-cache@0.2.1: + resolution: {integrity: sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==} + engines: {node: '>=0.10.0'} + dependencies: + map-cache: 0.2.2 + + /fresh@0.5.2: + resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} + engines: {node: '>= 0.6'} + + /fs-constants@1.0.0: + resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + dev: false + optional: true + + /fs-extra@10.1.0: + resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} + engines: {node: '>=12'} + dependencies: + graceful-fs: 4.2.10 + jsonfile: 6.1.0 + universalify: 2.0.0 + dev: true + + /fs-extra@4.0.3: + resolution: {integrity: sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==} + dependencies: + graceful-fs: 4.2.10 + jsonfile: 4.0.0 + universalify: 0.1.2 + + /fs-extra@7.0.1: + resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} + engines: {node: '>=6 <7 || >=8'} + dependencies: + graceful-fs: 4.2.10 + jsonfile: 4.0.0 + universalify: 0.1.2 + + /fs-extra@8.1.0: + resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} + engines: {node: '>=6 <7 || >=8'} + dependencies: + graceful-fs: 4.2.10 + jsonfile: 4.0.0 + universalify: 0.1.2 + dev: true + + /fs-minipass@1.2.7: + resolution: {integrity: sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==} + dependencies: + minipass: 2.9.0 + + /fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + /fsevents@2.3.2: + resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /function-bind@1.1.1: + resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + + /function.prototype.name@1.1.5: + resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.21.1 + functions-have-names: 1.2.3 + + /functional-red-black-tree@1.0.1: + resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} + dev: false + + /functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + + /ganache-core@2.13.2: + resolution: {integrity: sha512-tIF5cR+ANQz0+3pHWxHjIwHqFXcVo0Mb+kcsNhglNFALcYo49aQpnS9dqHartqPfMFjiHh/qFoD3mYK0d/qGgw==} + engines: {node: '>=8.9.0'} + deprecated: ganache-core is now ganache; visit https://trfl.io/g7 for details + dependencies: + abstract-leveldown: 3.0.0 + async: 2.6.2 + bip39: 2.5.0 + cachedown: 1.0.0 + clone: 2.1.2 + debug: 3.2.6 + encoding-down: 5.0.4 + eth-sig-util: 3.0.0 + ethereumjs-abi: 0.6.8 + ethereumjs-account: 3.0.0 + ethereumjs-block: 2.2.2 + ethereumjs-common: 1.5.0 + ethereumjs-tx: 2.1.2 + ethereumjs-util: 6.2.1 + ethereumjs-vm: 4.2.0 + heap: 0.2.6 + level-sublevel: 6.6.4 + levelup: 3.1.1 + lodash: 4.17.20 + lru-cache: 5.1.1 + merkle-patricia-tree: 3.0.0 + patch-package: 6.2.2 + seedrandom: 3.0.1 + source-map-support: 0.5.12 + tmp: 0.1.0 + web3-provider-engine: 14.2.1 + websocket: 1.0.32 + optionalDependencies: + ethereumjs-wallet: 0.6.5 + web3: 1.2.11 + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate + dev: false + bundledDependencies: + - keccak + + /gar@1.0.4: + resolution: {integrity: sha512-w4n9cPWyP7aHxKxYHFQMegj7WIAsL/YX/C4Bs5Rr8s1H9M1rNtRWRsw+ovYMkXDQ5S4ZbYHsHAPmevPjPgw44w==} + dev: true + + /gauge@2.7.4: + resolution: {integrity: sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==} + dependencies: + aproba: 1.2.0 + console-control-strings: 1.1.0 + has-unicode: 2.0.1 + object-assign: 4.1.1 + signal-exit: 3.0.7 + string-width: 1.0.2 + strip-ansi: 3.0.1 + wide-align: 1.1.3 + dev: false + optional: true + + /gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + + /get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + /get-folder-size@2.0.1: + resolution: {integrity: sha512-+CEb+GDCM7tkOS2wdMKTn9vU7DgnKUTuDlehkNJKNSovdCOVxs14OfKCk4cvSaR3za4gj+OBdl9opPN9xrJ0zA==} + hasBin: true + dependencies: + gar: 1.0.4 + tiny-each-async: 2.0.3 + dev: true + + /get-intrinsic@1.2.0: + resolution: {integrity: sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==} + dependencies: + function-bind: 1.1.1 + has: 1.0.3 + has-symbols: 1.0.3 + + /get-starknet@1.5.0(starknet@4.22.0): + resolution: {integrity: sha512-6A14mdPoMwO4orETjG5D+wwaZOzuAyNp/5+ZlDJnU+UU7QRGMYILUo8WjgqeVTg0mcN0BZoUE0C/Qhgd7dBvVQ==} + peerDependencies: + starknet: ^3.12.3 + dependencies: + bowser: 2.11.0 + starknet: 4.22.0 + dev: false + + /get-stream@4.1.0: + resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==} + engines: {node: '>=6'} + dependencies: + pump: 3.0.0 + dev: false + optional: true + + /get-stream@5.2.0: + resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} + engines: {node: '>=8'} + dependencies: + pump: 3.0.0 + + /get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + + /get-symbol-description@1.0.0: + resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.0 + + /get-tsconfig@4.4.0: + resolution: {integrity: sha512-0Gdjo/9+FzsYhXCEFueo2aY1z1tpXrxWZzP7k8ul9qt1U5o8rYJwTJYmaeHdrVosYIVYkOy2iwCJ9FdpocJhPQ==} + dev: true + + /get-value@2.0.6: + resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==} + engines: {node: '>=0.10.0'} + + /getpass@0.1.7: + resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==} + dependencies: + assert-plus: 1.0.0 + + /git-hooks-list@3.0.0: + resolution: {integrity: sha512-XDfdemBGJIMAsHHOONHQxEH5dX2kCpE6MGZ1IsNvBuDPBZM3p4EAwAC7ygMjn/1/x+BJX0TK1ara1Zrh7JCFdQ==} + dev: true + + /github-from-package@0.0.0: + resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} + dev: false + optional: true + + /glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + dependencies: + is-glob: 4.0.3 + + /glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + dependencies: + is-glob: 4.0.3 + + /glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + + /global-modules@2.0.0: + resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==} + engines: {node: '>=6'} + dependencies: + global-prefix: 3.0.0 + dev: true + + /global-prefix@3.0.0: + resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==} + engines: {node: '>=6'} + dependencies: + ini: 1.3.8 + kind-of: 6.0.3 + which: 1.3.1 + dev: true + + /global@4.4.0: + resolution: {integrity: sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==} + dependencies: + min-document: 2.19.0 + process: 0.11.10 + + /globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + + /globals@13.20.0: + resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.20.2 + + /globals@9.18.0: + resolution: {integrity: sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==} + engines: {node: '>=0.10.0'} + dev: false + + /globalthis@1.0.3: + resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} + engines: {node: '>= 0.4'} + dependencies: + define-properties: 1.1.4 + + /globalyzer@0.1.0: + resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==} + dev: true + + /globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.2.12 + ignore: 5.2.4 + merge2: 1.4.1 + slash: 3.0.0 + + /globby@13.1.3: + resolution: {integrity: sha512-8krCNHXvlCgHDpegPzleMq07yMYTO2sXKASmZmquEYWEmCx6J5UTRbp5RwMJkTJGtcQ44YpiUYUiN0b9mzy8Bw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + dir-glob: 3.0.1 + fast-glob: 3.2.12 + ignore: 5.2.4 + merge2: 1.4.1 + slash: 4.0.0 + dev: true + + /globjoin@0.1.4: + resolution: {integrity: sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==} + dev: true + + /globrex@0.1.2: + resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} + dev: true + + /goober@2.1.12(csstype@3.1.1): + resolution: {integrity: sha512-yXHAvO08FU1JgTXX6Zn6sYCUFfB/OJSX8HHjDSgerZHZmFKAb08cykp5LBw5QnmyMcZyPRMqkdyHUSSzge788Q==} + peerDependencies: + csstype: ^3.0.10 + dependencies: + csstype: 3.1.1 + dev: false + + /gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + dependencies: + get-intrinsic: 1.2.0 + + /got@11.8.6: + resolution: {integrity: sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==} + engines: {node: '>=10.19.0'} + dependencies: + '@sindresorhus/is': 4.6.0 + '@szmarczak/http-timer': 4.0.6 + '@types/cacheable-request': 6.0.3 + '@types/responselike': 1.0.0 + cacheable-lookup: 5.0.4 + cacheable-request: 7.0.2 + decompress-response: 6.0.0 + http2-wrapper: 1.0.3 + lowercase-keys: 2.0.0 + p-cancelable: 2.1.1 + responselike: 2.0.1 + + /got@12.1.0: + resolution: {integrity: sha512-hBv2ty9QN2RdbJJMK3hesmSkFTjVIHyIDDbssCKnSmq62edGgImJWD10Eb1k77TiV1bxloxqcFAVK8+9pkhOig==} + engines: {node: '>=14.16'} + dependencies: + '@sindresorhus/is': 4.6.0 + '@szmarczak/http-timer': 5.0.1 + '@types/cacheable-request': 6.0.3 + '@types/responselike': 1.0.0 + cacheable-lookup: 6.1.0 + cacheable-request: 7.0.2 + decompress-response: 6.0.0 + form-data-encoder: 1.7.1 + get-stream: 6.0.1 + http2-wrapper: 2.2.0 + lowercase-keys: 3.0.0 + p-cancelable: 3.0.0 + responselike: 2.0.1 + + /got@9.6.0: + resolution: {integrity: sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==} + engines: {node: '>=8.6'} + dependencies: + '@sindresorhus/is': 0.14.0 + '@szmarczak/http-timer': 1.1.2 + '@types/keyv': 3.1.4 + '@types/responselike': 1.0.0 + cacheable-request: 6.1.0 + decompress-response: 3.3.0 + duplexer3: 0.1.5 + get-stream: 4.1.0 + lowercase-keys: 1.0.1 + mimic-response: 1.0.1 + p-cancelable: 1.1.0 + to-readable-stream: 1.0.0 + url-parse-lax: 3.0.0 + dev: false + optional: true + + /graceful-fs@4.2.10: + resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} + + /grapheme-splitter@1.0.4: + resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} + + /handlebars@4.7.7: + resolution: {integrity: sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==} + engines: {node: '>=0.4.7'} + hasBin: true + dependencies: + minimist: 1.2.7 + neo-async: 2.6.2 + source-map: 0.6.1 + wordwrap: 1.0.0 + optionalDependencies: + uglify-js: 3.17.4 + dev: true + + /har-schema@2.0.0: + resolution: {integrity: sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==} + engines: {node: '>=4'} + + /har-validator@5.1.5: + resolution: {integrity: sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==} + engines: {node: '>=6'} + deprecated: this library is no longer supported + dependencies: + ajv: 6.12.6 + har-schema: 2.0.0 + + /hard-rejection@2.1.0: + resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} + engines: {node: '>=6'} + dev: true + + /has-ansi@2.0.0: + resolution: {integrity: sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==} + engines: {node: '>=0.10.0'} + dependencies: + ansi-regex: 2.1.1 + dev: false + + /has-bigints@1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + + /has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + + /has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + /has-property-descriptors@1.0.0: + resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} + dependencies: + get-intrinsic: 1.2.0 + + /has-proto@1.0.1: + resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} + engines: {node: '>= 0.4'} + + /has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + + /has-tostringtag@1.0.0: + resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + + /has-unicode@2.0.1: + resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} + dev: false + optional: true + + /has-value@0.3.1: + resolution: {integrity: sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==} + engines: {node: '>=0.10.0'} + dependencies: + get-value: 2.0.6 + has-values: 0.1.4 + isobject: 2.1.0 + + /has-value@1.0.0: + resolution: {integrity: sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==} + engines: {node: '>=0.10.0'} + dependencies: + get-value: 2.0.6 + has-values: 1.0.0 + isobject: 3.0.1 + + /has-values@0.1.4: + resolution: {integrity: sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==} + engines: {node: '>=0.10.0'} + + /has-values@1.0.0: + resolution: {integrity: sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==} + engines: {node: '>=0.10.0'} + dependencies: + is-number: 3.0.0 + kind-of: 4.0.0 + + /has@1.0.3: + resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} + engines: {node: '>= 0.4.0'} + dependencies: + function-bind: 1.1.1 + + /hash-base@3.1.0: + resolution: {integrity: sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==} + engines: {node: '>=4'} + dependencies: + inherits: 2.0.4 + readable-stream: 3.6.0 + safe-buffer: 5.2.1 + + /hash.js@1.1.3: + resolution: {integrity: sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==} + dependencies: + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + dev: false + + /hash.js@1.1.7: + resolution: {integrity: sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==} + dependencies: + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + + /hdkey@0.7.1: + resolution: {integrity: sha512-ADjIY5Bqdvp3Sh+SLSS1W3/gTJnlDwwM3UsM/5sHPojc4pLf6X3MfMMiTa96MgtADNhTPa+E+SAKMtqdv1zUfw==} + dependencies: + coinstring: 2.3.0 + secp256k1: 3.8.0 + dev: false + + /heap@0.2.6: + resolution: {integrity: sha512-MzzWcnfB1e4EG2vHi3dXHoBupmuXNZzx6pY6HldVS55JKKBoq3xOyzfSaZRkJp37HIhEYC78knabHff3zc4dQQ==} + dev: false + + /hmac-drbg@1.0.1: + resolution: {integrity: sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==} + dependencies: + hash.js: 1.1.7 + minimalistic-assert: 1.0.1 + minimalistic-crypto-utils: 1.0.1 + + /hoist-non-react-statics@3.3.2: + resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} + dependencies: + react-is: 16.13.1 + + /home-or-tmp@2.0.0: + resolution: {integrity: sha512-ycURW7oUxE2sNiPVw1HVEFsW+ecOpJ5zaj7eC0RlwhibhRBod20muUN8qu/gzx956YrLolVvs1MTXwKgC2rVEg==} + engines: {node: '>=0.10.0'} + dependencies: + os-homedir: 1.0.2 + os-tmpdir: 1.0.2 + dev: false + + /hosted-git-info@2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + dev: true + + /hosted-git-info@4.1.0: + resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} + engines: {node: '>=10'} + dependencies: + lru-cache: 6.0.0 + dev: true + + /html-tags@3.2.0: + resolution: {integrity: sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg==} + engines: {node: '>=8'} + dev: true + + /http-cache-semantics@4.1.1: + resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} + + /http-errors@1.6.3: + resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==} + engines: {node: '>= 0.6'} + dependencies: + depd: 1.1.2 + inherits: 2.0.3 + setprototypeof: 1.1.0 + statuses: 1.4.0 + + /http-errors@2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + engines: {node: '>= 0.8'} + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.1 + toidentifier: 1.0.1 + + /http-https@1.0.0: + resolution: {integrity: sha512-o0PWwVCSp3O0wS6FvNr6xfBCHgt0m1tvPLFOCc2iFDKTRAXhB7m8klDf7ErowFH8POa6dVdGatKU5I1YYwzUyg==} + + /http-signature@1.2.0: + resolution: {integrity: sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==} + engines: {node: '>=0.8', npm: '>=1.3.7'} + dependencies: + assert-plus: 1.0.0 + jsprim: 1.4.2 + sshpk: 1.17.0 + + /http2-wrapper@1.0.3: + resolution: {integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==} + engines: {node: '>=10.19.0'} + dependencies: + quick-lru: 5.1.1 + resolve-alpn: 1.2.1 + + /http2-wrapper@2.2.0: + resolution: {integrity: sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==} + engines: {node: '>=10.19.0'} + dependencies: + quick-lru: 5.1.1 + resolve-alpn: 1.2.1 + + /human-id@1.0.2: + resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==} + dev: true + + /hyphenate-style-name@1.0.4: + resolution: {integrity: sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==} + + /iconv-lite@0.4.23: + resolution: {integrity: sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==} + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: 2.1.2 + + /iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: 2.1.2 + + /iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: 2.1.2 + dev: false + + /idna-uts46-hx@2.3.1: + resolution: {integrity: sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA==} + engines: {node: '>=4.0.0'} + dependencies: + punycode: 2.1.0 + + /ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + + /ignore@5.2.4: + resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} + engines: {node: '>= 4'} + + /immediate@3.2.3: + resolution: {integrity: sha512-RrGCXRm/fRVqMIhqXrGEX9rRADavPiDFSoMb/k64i9XMk8uH4r/Omi5Ctierj6XzNecwDbO4WuFbDD1zmpl3Tg==} + dev: false + + /immediate@3.3.0: + resolution: {integrity: sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==} + dev: false + + /immutable@4.2.4: + resolution: {integrity: sha512-WDxL3Hheb1JkRN3sQkyujNlL/xRjAo3rJtaU5xeufUauG66JdMr32bLj4gF+vWl84DIA3Zxw7tiAjneYzRRw+w==} + dev: true + + /import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + + /import-lazy@4.0.0: + resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} + engines: {node: '>=8'} + dev: true + + /imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + /indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + dev: true + + /inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + /inherits@2.0.3: + resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==} + + /inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + /ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + + /internal-slot@1.0.4: + resolution: {integrity: sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.0 + has: 1.0.3 + side-channel: 1.0.4 + + /invariant@2.2.4: + resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} + dependencies: + loose-envify: 1.4.0 + dev: false + + /ipaddr.js@1.9.1: + resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} + engines: {node: '>= 0.10'} + + /is-accessor-descriptor@0.1.6: + resolution: {integrity: sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 3.2.2 + + /is-accessor-descriptor@1.0.0: + resolution: {integrity: sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 6.0.3 + + /is-arguments@1.1.1: + resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + + /is-array-buffer@3.0.1: + resolution: {integrity: sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.0 + is-typed-array: 1.1.10 + + /is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + + /is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + dependencies: + has-bigints: 1.0.2 + + /is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + dependencies: + binary-extensions: 2.2.0 + dev: true + + /is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + + /is-buffer@1.1.6: + resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} + + /is-buffer@2.0.5: + resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} + engines: {node: '>=4'} + dev: false + + /is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + + /is-ci@2.0.0: + resolution: {integrity: sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==} + hasBin: true + dependencies: + ci-info: 2.0.0 + dev: false + + /is-ci@3.0.1: + resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} + hasBin: true + dependencies: + ci-info: 3.7.1 + dev: true + + /is-core-module@2.11.0: + resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==} + dependencies: + has: 1.0.3 + + /is-data-descriptor@0.1.4: + resolution: {integrity: sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 3.2.2 + + /is-data-descriptor@1.0.0: + resolution: {integrity: sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 6.0.3 + + /is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + + /is-descriptor@0.1.6: + resolution: {integrity: sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==} + engines: {node: '>=0.10.0'} + dependencies: + is-accessor-descriptor: 0.1.6 + is-data-descriptor: 0.1.4 + kind-of: 5.1.0 + + /is-descriptor@1.0.2: + resolution: {integrity: sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==} + engines: {node: '>=0.10.0'} + dependencies: + is-accessor-descriptor: 1.0.0 + is-data-descriptor: 1.0.0 + kind-of: 6.0.3 + + /is-docker@2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true + dev: true + + /is-extendable@0.1.1: + resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} + engines: {node: '>=0.10.0'} + + /is-extendable@1.0.1: + resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==} + engines: {node: '>=0.10.0'} + dependencies: + is-plain-object: 2.0.4 + + /is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + /is-finite@1.1.0: + resolution: {integrity: sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==} + engines: {node: '>=0.10.0'} + dev: false + + /is-fn@1.0.0: + resolution: {integrity: sha512-XoFPJQmsAShb3jEQRfzf2rqXavq7fIqF/jOekp308JlThqrODnMpweVSGilKTCXELfLhltGP2AGgbQGVP8F1dg==} + engines: {node: '>=0.10.0'} + dev: false + + /is-fullwidth-code-point@1.0.0: + resolution: {integrity: sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==} + engines: {node: '>=0.10.0'} + dependencies: + number-is-nan: 1.0.1 + dev: false + optional: true + + /is-fullwidth-code-point@2.0.0: + resolution: {integrity: sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==} + engines: {node: '>=4'} + dev: false + + /is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + dev: true + + /is-function@1.0.2: + resolution: {integrity: sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==} + + /is-generator-function@1.0.10: + resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + + /is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + + /is-hex-prefixed@1.0.0: + resolution: {integrity: sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==} + engines: {node: '>=6.5.0', npm: '>=3'} + + /is-in-browser@1.1.3: + resolution: {integrity: sha512-FeXIBgG/CPGd/WUxuEyvgGTEfwiG9Z4EKGxjNMRqviiIIfsmgrpnHLffEDdwUHqNva1VEW91o3xBT/m8Elgl9g==} + + /is-negative-zero@2.0.2: + resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} + engines: {node: '>= 0.4'} + + /is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + + /is-number@3.0.0: + resolution: {integrity: sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 3.2.2 + + /is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + /is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + + /is-plain-obj@1.1.0: + resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} + engines: {node: '>=0.10.0'} + dev: true + + /is-plain-obj@4.1.0: + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} + engines: {node: '>=12'} + dev: true + + /is-plain-object@2.0.4: + resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} + engines: {node: '>=0.10.0'} + dependencies: + isobject: 3.0.1 + + /is-plain-object@5.0.0: + resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} + engines: {node: '>=0.10.0'} + dev: true + + /is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + + /is-shared-array-buffer@1.0.2: + resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + dependencies: + call-bind: 1.0.2 + + /is-stream@1.1.0: + resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==} + engines: {node: '>=0.10.0'} + dev: false + + /is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + dev: false + + /is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + + /is-subdir@1.2.0: + resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} + engines: {node: '>=4'} + dependencies: + better-path-resolve: 1.0.0 + dev: true + + /is-symbol@1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + + /is-typed-array@1.1.10: + resolution: {integrity: sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.0 + + /is-typedarray@1.0.0: + resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} + + /is-weakref@1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + dependencies: + call-bind: 1.0.2 + + /is-what@4.1.8: + resolution: {integrity: sha512-yq8gMao5upkPoGEU9LsB2P+K3Kt8Q3fQFCGyNCWOAnJAMzEXVV9drYb0TXr42TTliLLhKIBvulgAXgtLLnwzGA==} + engines: {node: '>=12.13'} + dev: false + + /is-windows@1.0.2: + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} + + /is-wsl@2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} + dependencies: + is-docker: 2.2.1 + dev: true + + /isarray@0.0.1: + resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} + dev: false + + /isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + + /isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + dev: false + + /isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + /isobject@2.1.0: + resolution: {integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==} + engines: {node: '>=0.10.0'} + dependencies: + isarray: 1.0.0 + + /isobject@3.0.1: + resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} + engines: {node: '>=0.10.0'} + + /isomorphic-fetch@2.2.1: + resolution: {integrity: sha512-9c4TNAKYXM5PRyVcwUZrF3W09nQ+sO7+jydgs4ZGW9dhsLG2VOlISJABombdQqQRXCwuYG3sYV/puGf5rp0qmA==} + dependencies: + node-fetch: 1.7.3 + whatwg-fetch: 3.6.2 + dev: false + + /isomorphic-fetch@3.0.0: + resolution: {integrity: sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==} + dependencies: + node-fetch: 2.6.9 + whatwg-fetch: 3.6.2 + transitivePeerDependencies: + - encoding + + /isstream@0.1.2: + resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==} + + /javascript-natural-sort@0.7.1: + resolution: {integrity: sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw==} + dev: true + + /jju@1.4.0: + resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} + dev: true + + /js-logger@1.6.1: + resolution: {integrity: sha512-yTgMCPXVjhmg28CuUH8CKjU+cIKL/G+zTu4Fn4lQxs8mRFH/03QTNvEFngcxfg/gRDiQAOoyCKmMTOm9ayOzXA==} + dev: false + + /js-sdsl@4.3.0: + resolution: {integrity: sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==} + + /js-sha256@0.9.0: + resolution: {integrity: sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA==} + dev: false + + /js-sha3@0.5.7: + resolution: {integrity: sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g==} + + /js-sha3@0.7.0: + resolution: {integrity: sha512-Wpks3yBDm0UcL5qlVhwW9Jr9n9i4FfeWBFOOXP5puDS/SiudJGhw7DPyBqn3487qD4F0lsC0q3zxink37f7zeA==} + dev: false + + /js-sha3@0.8.0: + resolution: {integrity: sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==} + + /js-tokens@3.0.2: + resolution: {integrity: sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==} + dev: false + + /js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + /js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + dev: true + + /js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + dependencies: + argparse: 2.0.1 + + /jsbi@3.2.5: + resolution: {integrity: sha512-aBE4n43IPvjaddScbvWRA2YlTzKEynHzu7MqOyTipdHucf/VxS63ViCjxYRg86M8Rxwbt/GfzHl1kKERkt45fQ==} + dev: false + + /jsbn@0.1.1: + resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==} + + /jsesc@0.5.0: + resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} + hasBin: true + dev: false + + /jsesc@1.3.0: + resolution: {integrity: sha512-Mke0DA0QjUWuJlhsE0ZPPhYiJkRap642SmI/4ztCFaUs6V2AiH1sfecc+57NgaryfAA2VR3v6O+CSjC1jZJKOA==} + hasBin: true + dev: false + + /jsesc@2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + engines: {node: '>=4'} + hasBin: true + + /json-bigint@1.0.0: + resolution: {integrity: sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==} + dependencies: + bignumber.js: 9.1.1 + + /json-buffer@3.0.0: + resolution: {integrity: sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==} + dev: false + optional: true + + /json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + /json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + + /json-rpc-engine@3.8.0: + resolution: {integrity: sha512-6QNcvm2gFuuK4TKU1uwfH0Qd/cOSb9c1lls0gbnIhciktIUQJwz6NQNAW4B1KiGPenv7IKu97V222Yo1bNhGuA==} + dependencies: + async: 2.6.4 + babel-preset-env: 1.7.0 + babelify: 7.3.0 + json-rpc-error: 2.0.0 + promise-to-callback: 1.0.0 + safe-event-emitter: 1.0.1 + transitivePeerDependencies: + - supports-color + dev: false + + /json-rpc-engine@5.4.0: + resolution: {integrity: sha512-rAffKbPoNDjuRnXkecTjnsE3xLLrb00rEkdgalINhaYVYIxDwWtvYBr9UFbhTvPB1B2qUOLoFd/cV6f4Q7mh7g==} + dependencies: + eth-rpc-errors: 3.0.0 + safe-event-emitter: 1.0.1 + dev: false + + /json-rpc-engine@6.1.0: + resolution: {integrity: sha512-NEdLrtrq1jUZyfjkr9OCz9EzCNhnRyWtt1PAnvnhwy6e8XETS0Dtc+ZNCO2gvuAoKsIn2+vCSowXTYE4CkgnAQ==} + engines: {node: '>=10.0.0'} + dependencies: + '@metamask/safe-event-emitter': 2.0.0 + eth-rpc-errors: 4.0.3 + dev: false + + /json-rpc-error@2.0.0: + resolution: {integrity: sha512-EwUeWP+KgAZ/xqFpaP6YDAXMtCJi+o/QQpCQFIYyxr01AdADi2y413eM8hSqJcoQym9WMePAJWoaODEJufC4Ug==} + dependencies: + inherits: 2.0.4 + dev: false + + /json-rpc-random-id@1.0.1: + resolution: {integrity: sha512-RJ9YYNCkhVDBuP4zN5BBtYAzEl03yq/jIIsyif0JY9qyJuQQZNeDK7anAPKKlyEtLSj2s8h6hNh2F8zO5q7ScA==} + dev: false + + /json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + /json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + dev: true + + /json-schema@0.4.0: + resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} + + /json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + + /json-stable-stringify@1.0.2: + resolution: {integrity: sha512-eunSSaEnxV12z+Z73y/j5N37/In40GK4GmsSy+tEHJMxknvqnA7/djeYtAgW0GsWHUfg+847WJjKaEylk2y09g==} + dependencies: + jsonify: 0.0.1 + dev: false + + /json-stringify-safe@5.0.1: + resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} + + /json5@0.5.1: + resolution: {integrity: sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw==} + hasBin: true + dev: false + + /json5@1.0.2: + resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} + hasBin: true + dependencies: + minimist: 1.2.7 + dev: true + + /json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + /jsonc-parser@3.2.0: + resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} + dev: true + + /jsonfile@4.0.0: + resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} + optionalDependencies: + graceful-fs: 4.2.10 + + /jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + dependencies: + universalify: 2.0.0 + optionalDependencies: + graceful-fs: 4.2.10 + dev: true + + /jsonify@0.0.1: + resolution: {integrity: sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==} + dev: false + + /jsonschema@1.4.1: + resolution: {integrity: sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==} + dev: false + + /jsprim@1.4.2: + resolution: {integrity: sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==} + engines: {node: '>=0.6.0'} + dependencies: + assert-plus: 1.0.0 + extsprintf: 1.3.0 + json-schema: 0.4.0 + verror: 1.10.0 + + /jss-plugin-camel-case@10.10.0: + resolution: {integrity: sha512-z+HETfj5IYgFxh1wJnUAU8jByI48ED+v0fuTuhKrPR+pRBYS2EDwbusU8aFOpCdYhtRc9zhN+PJ7iNE8pAWyPw==} + dependencies: + '@babel/runtime': 7.21.5 + hyphenate-style-name: 1.0.4 + jss: 10.10.0 + + /jss-plugin-default-unit@10.10.0: + resolution: {integrity: sha512-SvpajxIECi4JDUbGLefvNckmI+c2VWmP43qnEy/0eiwzRUsafg5DVSIWSzZe4d2vFX1u9nRDP46WCFV/PXVBGQ==} + dependencies: + '@babel/runtime': 7.21.5 + jss: 10.10.0 + + /jss-plugin-global@10.10.0: + resolution: {integrity: sha512-icXEYbMufiNuWfuazLeN+BNJO16Ge88OcXU5ZDC2vLqElmMybA31Wi7lZ3lf+vgufRocvPj8443irhYRgWxP+A==} + dependencies: + '@babel/runtime': 7.21.5 + jss: 10.10.0 + + /jss-plugin-nested@10.10.0: + resolution: {integrity: sha512-9R4JHxxGgiZhurDo3q7LdIiDEgtA1bTGzAbhSPyIOWb7ZubrjQe8acwhEQ6OEKydzpl8XHMtTnEwHXCARLYqYA==} + dependencies: + '@babel/runtime': 7.21.5 + jss: 10.10.0 + tiny-warning: 1.0.3 + + /jss-plugin-props-sort@10.10.0: + resolution: {integrity: sha512-5VNJvQJbnq/vRfje6uZLe/FyaOpzP/IH1LP+0fr88QamVrGJa0hpRRyAa0ea4U/3LcorJfBFVyC4yN2QC73lJg==} + dependencies: + '@babel/runtime': 7.21.5 + jss: 10.10.0 + + /jss-plugin-rule-value-function@10.10.0: + resolution: {integrity: sha512-uEFJFgaCtkXeIPgki8ICw3Y7VMkL9GEan6SqmT9tqpwM+/t+hxfMUdU4wQ0MtOiMNWhwnckBV0IebrKcZM9C0g==} + dependencies: + '@babel/runtime': 7.21.5 + jss: 10.10.0 + tiny-warning: 1.0.3 + + /jss-plugin-vendor-prefixer@10.10.0: + resolution: {integrity: sha512-UY/41WumgjW8r1qMCO8l1ARg7NHnfRVWRhZ2E2m0DMYsr2DD91qIXLyNhiX83hHswR7Wm4D+oDYNC1zWCJWtqg==} + dependencies: + '@babel/runtime': 7.21.5 + css-vendor: 2.0.8 + jss: 10.10.0 + + /jss@10.10.0: + resolution: {integrity: sha512-cqsOTS7jqPsPMjtKYDUpdFC0AbhYFLTcuGRqymgmdJIeQ8cH7+AgX7YSgQy79wXloZq2VvATYxUOUQEvS1V/Zw==} + dependencies: + '@babel/runtime': 7.21.5 + csstype: 3.1.1 + is-in-browser: 1.1.3 + tiny-warning: 1.0.3 + + /jsx-ast-utils@3.3.3: + resolution: {integrity: sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==} + engines: {node: '>=4.0'} + dependencies: + array-includes: 3.1.6 + object.assign: 4.1.4 + dev: true + + /keccak@1.4.0: + resolution: {integrity: sha512-eZVaCpblK5formjPjeTBik7TAg+pqnDrMHIffSvi9Lh7PQgM1+hSzakUeZFCk9DVVG0dacZJuaz2ntwlzZUIBw==} + engines: {node: '>=4.0.0'} + requiresBuild: true + dependencies: + bindings: 1.5.0 + inherits: 2.0.4 + nan: 2.17.0 + safe-buffer: 5.2.1 + dev: false + + /keccak@3.0.3: + resolution: {integrity: sha512-JZrLIAJWuZxKbCilMpNz5Vj7Vtb4scDG3dMXLOsbzBmQGyjwE61BbW7bJkfKKCShXiQZt3T6sBgALRtmd+nZaQ==} + engines: {node: '>=10.0.0'} + requiresBuild: true + dependencies: + node-addon-api: 2.0.2 + node-gyp-build: 4.6.0 + readable-stream: 3.6.0 + + /keypress@0.2.1: + resolution: {integrity: sha512-HjorDJFNhnM4SicvaUXac0X77NiskggxJdesG72+O5zBKpSqKFCrqmndKVqpu3pFqkla0St6uGk8Ju0sCurrmg==} + dev: true + + /keyv@3.1.0: + resolution: {integrity: sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==} + dependencies: + json-buffer: 3.0.0 + dev: false + optional: true + + /keyv@4.5.2: + resolution: {integrity: sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==} + dependencies: + json-buffer: 3.0.1 + + /keyvaluestorage-interface@1.0.0: + resolution: {integrity: sha512-8t6Q3TclQ4uZynJY9IGr2+SsIGwK9JHcO6ootkHCGA0CrQCRy+VkouYNO2xicET6b9al7QKzpebNow+gkpCL8g==} + dev: false + + /kind-of@3.2.2: + resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==} + engines: {node: '>=0.10.0'} + dependencies: + is-buffer: 1.1.6 + + /kind-of@4.0.0: + resolution: {integrity: sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==} + engines: {node: '>=0.10.0'} + dependencies: + is-buffer: 1.1.6 + + /kind-of@5.1.0: + resolution: {integrity: sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==} + engines: {node: '>=0.10.0'} + + /kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + + /klaw-sync@6.0.0: + resolution: {integrity: sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ==} + dependencies: + graceful-fs: 4.2.10 + dev: false + + /kleur@4.1.5: + resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} + engines: {node: '>=6'} + dev: true + + /known-css-properties@0.26.0: + resolution: {integrity: sha512-5FZRzrZzNTBruuurWpvZnvP9pum+fe0HcK8z/ooo+U+Hmp4vtbyp1/QDsqmufirXy4egGzbaH/y2uCZf+6W5Kg==} + dev: true + + /kolorist@1.7.0: + resolution: {integrity: sha512-ymToLHqL02udwVdbkowNpzjFd6UzozMtshPQKVi5k1EjKRqKqBrOnE9QbLEb0/pV76SAiIT13hdL8R6suc+f3g==} + dev: true + + /level-codec@7.0.1: + resolution: {integrity: sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ==} + dev: false + + /level-codec@9.0.2: + resolution: {integrity: sha512-UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ==} + engines: {node: '>=6'} + dependencies: + buffer: 5.7.1 + dev: false + + /level-errors@1.0.5: + resolution: {integrity: sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig==} + dependencies: + errno: 0.1.8 + dev: false + + /level-errors@2.0.1: + resolution: {integrity: sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw==} + engines: {node: '>=6'} + dependencies: + errno: 0.1.8 + dev: false + + /level-iterator-stream@1.3.1: + resolution: {integrity: sha512-1qua0RHNtr4nrZBgYlpV0qHHeHpcRRWTxEZJ8xsemoHAXNL5tbooh4tPEEqIqsbWCAJBmUmkwYK/sW5OrFjWWw==} + dependencies: + inherits: 2.0.4 + level-errors: 1.0.5 + readable-stream: 1.0.34 + xtend: 4.0.2 + dev: false + + /level-iterator-stream@2.0.3: + resolution: {integrity: sha512-I6Heg70nfF+e5Y3/qfthJFexhRw/Gi3bIymCoXAlijZdAcLaPuWSJs3KXyTYf23ID6g0o2QF62Yh+grOXY3Rig==} + engines: {node: '>=4'} + dependencies: + inherits: 2.0.4 + readable-stream: 2.3.8 + xtend: 4.0.2 + dev: false + + /level-iterator-stream@3.0.1: + resolution: {integrity: sha512-nEIQvxEED9yRThxvOrq8Aqziy4EGzrxSZK+QzEFAVuJvQ8glfyZ96GB6BoI4sBbLfjMXm2w4vu3Tkcm9obcY0g==} + engines: {node: '>=6'} + dependencies: + inherits: 2.0.4 + readable-stream: 2.3.8 + xtend: 4.0.2 + dev: false + + /level-mem@3.0.1: + resolution: {integrity: sha512-LbtfK9+3Ug1UmvvhR2DqLqXiPW1OJ5jEh0a3m9ZgAipiwpSxGj/qaVVy54RG5vAQN1nCuXqjvprCuKSCxcJHBg==} + engines: {node: '>=6'} + dependencies: + level-packager: 4.0.1 + memdown: 3.0.0 + dev: false + + /level-packager@4.0.1: + resolution: {integrity: sha512-svCRKfYLn9/4CoFfi+d8krOtrp6RoX8+xm0Na5cgXMqSyRru0AnDYdLl+YI8u1FyS6gGZ94ILLZDE5dh2but3Q==} + engines: {node: '>=6'} + dependencies: + encoding-down: 5.0.4 + levelup: 3.1.1 + dev: false + + /level-post@1.0.7: + resolution: {integrity: sha512-PWYqG4Q00asOrLhX7BejSajByB4EmG2GaKHfj3h5UmmZ2duciXLPGYWIjBzLECFWUGOZWlm5B20h/n3Gs3HKew==} + dependencies: + ltgt: 2.1.3 + dev: false + + /level-sublevel@6.6.4: + resolution: {integrity: sha512-pcCrTUOiO48+Kp6F1+UAzF/OtWqLcQVTVF39HLdZ3RO8XBoXt+XVPKZO1vVr1aUoxHZA9OtD2e1v7G+3S5KFDA==} + dependencies: + bytewise: 1.1.0 + level-codec: 9.0.2 + level-errors: 2.0.1 + level-iterator-stream: 2.0.3 + ltgt: 2.1.3 + pull-defer: 0.2.3 + pull-level: 2.0.4 + pull-stream: 3.7.0 + typewiselite: 1.0.0 + xtend: 4.0.2 + dev: false + + /level-ws@0.0.0: + resolution: {integrity: sha512-XUTaO/+Db51Uiyp/t7fCMGVFOTdtLS/NIACxE/GHsij15mKzxksZifKVjlXDF41JMUP/oM1Oc4YNGdKnc3dVLw==} + dependencies: + readable-stream: 1.0.34 + xtend: 2.1.2 + dev: false + + /level-ws@1.0.0: + resolution: {integrity: sha512-RXEfCmkd6WWFlArh3X8ONvQPm8jNpfA0s/36M4QzLqrLEIt1iJE9WBHLZ5vZJK6haMjJPJGJCQWfjMNnRcq/9Q==} + engines: {node: '>=6'} + dependencies: + inherits: 2.0.4 + readable-stream: 2.3.8 + xtend: 4.0.2 + dev: false + + /levelup@1.3.9: + resolution: {integrity: sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ==} + dependencies: + deferred-leveldown: 1.2.2 + level-codec: 7.0.1 + level-errors: 1.0.5 + level-iterator-stream: 1.3.1 + prr: 1.0.1 + semver: 5.4.1 + xtend: 4.0.2 + dev: false + + /levelup@3.1.1: + resolution: {integrity: sha512-9N10xRkUU4dShSRRFTBdNaBxofz+PGaIZO962ckboJZiNmLuhVT6FZ6ZKAsICKfUBO76ySaYU6fJWX/jnj3Lcg==} + engines: {node: '>=6'} + dependencies: + deferred-leveldown: 4.0.2 + level-errors: 2.0.1 + level-iterator-stream: 3.0.1 + xtend: 4.0.2 + dev: false + + /levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + + /lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + /load-yaml-file@0.2.0: + resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} + engines: {node: '>=6'} + dependencies: + graceful-fs: 4.2.10 + js-yaml: 3.14.1 + pify: 4.0.1 + strip-bom: 3.0.0 + dev: true + + /locate-path@3.0.0: + resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} + engines: {node: '>=6'} + dependencies: + p-locate: 3.0.0 + path-exists: 3.0.0 + dev: false + + /locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + dependencies: + p-locate: 4.1.0 + dev: true + + /locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + dependencies: + p-locate: 5.0.0 + + /lodash.debounce@4.0.8: + resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + dev: false + + /lodash.get@4.4.2: + resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} + dev: true + + /lodash.isequal@4.5.0: + resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} + dev: true + + /lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + + /lodash.startcase@4.4.0: + resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} + dev: true + + /lodash.truncate@4.4.2: + resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} + dev: true + + /lodash.values@4.3.0: + resolution: {integrity: sha512-r0RwvdCv8id9TUblb/O7rYPwVy6lerCbcawrfdo9iC/1t1wsNMJknO79WNBgwkH0hIeJ08jmvvESbFpNb4jH0Q==} + dev: false + + /lodash@4.17.20: + resolution: {integrity: sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==} + dev: false + + /lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + + /loglevel@1.8.1: + resolution: {integrity: sha512-tCRIJM51SHjAayKwC+QAg8hT8vg6z7GSgLJKGvzuPb1Wc+hLzqtuVLxp6/HzSPOozuK+8ErAhy7U/sVzw8Dgfg==} + engines: {node: '>= 0.6.0'} + dev: false + + /looper@2.0.0: + resolution: {integrity: sha512-6DzMHJcjbQX/UPHc1rRCBfKlLwDkvuGZ715cIR36wSdYqWXFT35uLXq5P/2orl3tz+t+VOVPxw4yPinQlUDGDQ==} + dev: false + + /looper@3.0.0: + resolution: {integrity: sha512-LJ9wplN/uSn72oJRsXTx+snxPet5c8XiZmOKCm906NVYu+ag6SB6vUcnJcWxgnl2NfbIyeobAn7Bwv6xRj2XJg==} + dev: false + + /loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + dependencies: + js-tokens: 4.0.0 + + /lowercase-keys@1.0.1: + resolution: {integrity: sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==} + engines: {node: '>=0.10.0'} + dev: false + optional: true + + /lowercase-keys@2.0.0: + resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} + engines: {node: '>=8'} + + /lowercase-keys@3.0.0: + resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + /lru-cache@3.2.0: + resolution: {integrity: sha512-91gyOKTc2k66UG6kHiH4h3S2eltcPwE1STVfMYC/NG+nZwf8IIuiamfmpGZjpbbxzSyEJaLC0tNSmhjlQUTJow==} + dependencies: + pseudomap: 1.0.2 + dev: false + + /lru-cache@4.1.5: + resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} + dependencies: + pseudomap: 1.0.2 + yallist: 2.1.2 + dev: true + + /lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + dependencies: + yallist: 3.1.1 + + /lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + dependencies: + yallist: 4.0.0 + + /ltgt@2.1.3: + resolution: {integrity: sha512-5VjHC5GsENtIi5rbJd+feEpDKhfr7j0odoUR2Uh978g+2p93nd5o34cTjQWohXsPsCZeqoDnIqEf88mPCe0Pfw==} + dev: false + + /ltgt@2.2.1: + resolution: {integrity: sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA==} + dev: false + + /lunr@2.3.9: + resolution: {integrity: sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==} + dev: true + + /magic-string@0.16.0: + resolution: {integrity: sha512-c4BEos3y6G2qO0B9X7K0FVLOPT9uGrjYwYRLFmDqyl5YMboUviyecnXWp94fJTSMwPw2/sf+CEYt5AGpmklkkQ==} + dependencies: + vlq: 0.2.3 + dev: true + + /magic-string@0.27.0: + resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.14 + dev: true + + /magic-string@0.29.0: + resolution: {integrity: sha512-WcfidHrDjMY+eLjlU+8OvwREqHwpgCeKVBUpQ3OhYYuvfaYCUgcbuBzappNzZvg/v8onU3oQj+BYpkOJe9Iw4Q==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.14 + dev: true + + /map-cache@0.2.2: + resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==} + engines: {node: '>=0.10.0'} + + /map-obj@1.0.1: + resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} + engines: {node: '>=0.10.0'} + dev: true + + /map-obj@4.3.0: + resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} + engines: {node: '>=8'} + dev: true + + /map-visit@1.0.0: + resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==} + engines: {node: '>=0.10.0'} + dependencies: + object-visit: 1.0.1 + + /marked@4.2.12: + resolution: {integrity: sha512-yr8hSKa3Fv4D3jdZmtMMPghgVt6TWbk86WQaWhDloQjRSQhMMYCAro7jP7VDJrjjdV8pxVxMssXS8B8Y5DZ5aw==} + engines: {node: '>= 12'} + hasBin: true + dev: true + + /mathml-tag-names@2.1.3: + resolution: {integrity: sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==} + dev: true + + /md5.js@1.3.5: + resolution: {integrity: sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==} + dependencies: + hash-base: 3.1.0 + inherits: 2.0.4 + safe-buffer: 5.2.1 + + /media-typer@0.3.0: + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} + engines: {node: '>= 0.6'} + + /memdown@1.4.1: + resolution: {integrity: sha512-iVrGHZB8i4OQfM155xx8akvG9FIj+ht14DX5CQkCTG4EHzZ3d3sgckIf/Lm9ivZalEsFuEVnWv2B2WZvbrro2w==} + dependencies: + abstract-leveldown: 2.7.2 + functional-red-black-tree: 1.0.1 + immediate: 3.3.0 + inherits: 2.0.4 + ltgt: 2.2.1 + safe-buffer: 5.1.2 + dev: false + + /memdown@3.0.0: + resolution: {integrity: sha512-tbV02LfZMWLcHcq4tw++NuqMO+FZX8tNJEiD2aNRm48ZZusVg5N8NART+dmBkepJVye986oixErf7jfXboMGMA==} + engines: {node: '>=6'} + dependencies: + abstract-leveldown: 5.0.0 + functional-red-black-tree: 1.0.1 + immediate: 3.2.3 + inherits: 2.0.4 + ltgt: 2.2.1 + safe-buffer: 5.1.2 + dev: false + + /meow@6.1.1: + resolution: {integrity: sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg==} + engines: {node: '>=8'} + dependencies: + '@types/minimist': 1.2.2 + camelcase-keys: 6.2.2 + decamelize-keys: 1.1.1 + hard-rejection: 2.1.0 + minimist-options: 4.1.0 + normalize-package-data: 2.5.0 + read-pkg-up: 7.0.1 + redent: 3.0.0 + trim-newlines: 3.0.1 + type-fest: 0.13.1 + yargs-parser: 18.1.3 + dev: true + + /meow@9.0.0: + resolution: {integrity: sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==} + engines: {node: '>=10'} + dependencies: + '@types/minimist': 1.2.2 + camelcase-keys: 6.2.2 + decamelize: 1.2.0 + decamelize-keys: 1.1.1 + hard-rejection: 2.1.0 + minimist-options: 4.1.0 + normalize-package-data: 3.0.3 + read-pkg-up: 7.0.1 + redent: 3.0.0 + trim-newlines: 3.0.1 + type-fest: 0.18.1 + yargs-parser: 20.2.9 + dev: true + + /merge-descriptors@1.0.1: + resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} + + /merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + /merkle-patricia-tree@2.3.2: + resolution: {integrity: sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g==} + dependencies: + async: 1.5.2 + ethereumjs-util: 5.2.0 + level-ws: 0.0.0 + levelup: 1.3.9 + memdown: 1.4.1 + readable-stream: 2.3.8 + rlp: 2.2.7 + semaphore: 1.1.0 + dev: false + + /merkle-patricia-tree@3.0.0: + resolution: {integrity: sha512-soRaMuNf/ILmw3KWbybaCjhx86EYeBbD8ph0edQCTed0JN/rxDt1EBN52Ajre3VyGo+91f8+/rfPIRQnnGMqmQ==} + dependencies: + async: 2.6.4 + ethereumjs-util: 5.2.0 + level-mem: 3.0.1 + level-ws: 1.0.0 + readable-stream: 3.6.0 + rlp: 2.2.7 + semaphore: 1.1.0 + dev: false + + /methods@1.1.2: + resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} + engines: {node: '>= 0.6'} + + /micromatch@3.1.10: + resolution: {integrity: sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==} + engines: {node: '>=0.10.0'} + dependencies: + arr-diff: 4.0.0 + array-unique: 0.3.2 + braces: 2.3.2 + define-property: 2.0.2 + extend-shallow: 3.0.2 + extglob: 2.0.4 + fragment-cache: 0.2.1 + kind-of: 6.0.3 + nanomatch: 1.2.13 + object.pick: 1.3.0 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + + /micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} + dependencies: + braces: 3.0.2 + picomatch: 2.3.1 + + /miller-rabin@4.0.1: + resolution: {integrity: sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==} + hasBin: true + dependencies: + bn.js: 4.12.0 + brorand: 1.1.0 + dev: false + + /mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + /mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + dependencies: + mime-db: 1.52.0 + + /mime@1.4.1: + resolution: {integrity: sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==} + hasBin: true + + /mimic-response@1.0.1: + resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} + engines: {node: '>=4'} + + /mimic-response@2.1.0: + resolution: {integrity: sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==} + engines: {node: '>=8'} + dev: false + optional: true + + /mimic-response@3.1.0: + resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} + engines: {node: '>=10'} + + /min-document@2.19.0: + resolution: {integrity: sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==} + dependencies: + dom-walk: 0.1.2 + + /min-indent@1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} + dev: true + + /minimalistic-assert@1.0.1: + resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} + + /minimalistic-crypto-utils@1.0.1: + resolution: {integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==} + + /minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + dependencies: + brace-expansion: 1.1.11 + + /minimatch@5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} + engines: {node: '>=10'} + dependencies: + brace-expansion: 2.0.1 + dev: true + + /minimatch@6.1.6: + resolution: {integrity: sha512-6bR3UIeh/DF8+p6A9Spyuy67ShOq42rOkHWi7eUe3Ua99Zo5lZfGC6lJJWkeoK4k9jQFT3Pl7czhTXimG2XheA==} + engines: {node: '>=10'} + dependencies: + brace-expansion: 2.0.1 + dev: true + + /minimatch@7.4.6: + resolution: {integrity: sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==} + engines: {node: '>=10'} + dependencies: + brace-expansion: 2.0.1 + dev: true + + /minimist-options@4.1.0: + resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} + engines: {node: '>= 6'} + dependencies: + arrify: 1.0.1 + is-plain-obj: 1.1.0 + kind-of: 6.0.3 + dev: true + + /minimist@1.2.7: + resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==} + + /minipass@2.9.0: + resolution: {integrity: sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==} + dependencies: + safe-buffer: 5.2.1 + yallist: 3.1.1 + + /minizlib@1.3.3: + resolution: {integrity: sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==} + dependencies: + minipass: 2.9.0 + + /mixin-deep@1.3.2: + resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==} + engines: {node: '>=0.10.0'} + dependencies: + for-in: 1.0.2 + is-extendable: 1.0.1 + + /mixme@0.5.5: + resolution: {integrity: sha512-/6IupbRx32s7jjEwHcycXikJwFD5UujbVNuJFkeKLYje+92OvtuPniF6JhnFm5JCTDUhS+kYK3W/4BWYQYXz7w==} + engines: {node: '>= 8.0.0'} + dev: true + + /mkdirp-classic@0.5.3: + resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} + dev: false + optional: true + + /mkdirp-promise@5.0.1: + resolution: {integrity: sha512-Hepn5kb1lJPtVW84RFT40YG1OddBNTOVUZR2bzQUHc+Z03en8/3uX0+060JDhcEzyO08HmipsN9DcnFMxhIL9w==} + engines: {node: '>=4'} + deprecated: This package is broken and no longer maintained. 'mkdirp' itself supports promises now, please switch to that. + dependencies: + mkdirp: 2.1.6 + + /mkdirp@0.5.6: + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + hasBin: true + dependencies: + minimist: 1.2.7 + + /mkdirp@1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true + dev: true + + /mkdirp@2.1.6: + resolution: {integrity: sha512-+hEnITedc8LAtIP9u3HJDFIdcLV2vXP33sqLLIzkv1Db1zO/1OxbvYf0Y1OC/S/Qo5dxHXepofhmxL02PsKe+A==} + engines: {node: '>=10'} + hasBin: true + + /mock-fs@4.14.0: + resolution: {integrity: sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw==} + + /ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + + /ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + + /ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + /multibase@0.6.1: + resolution: {integrity: sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw==} + deprecated: This module has been superseded by the multiformats module + dependencies: + base-x: 3.0.9 + buffer: 5.7.1 + + /multibase@0.7.0: + resolution: {integrity: sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==} + deprecated: This module has been superseded by the multiformats module + dependencies: + base-x: 3.0.9 + buffer: 5.7.1 + + /multicodec@0.5.7: + resolution: {integrity: sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA==} + deprecated: This module has been superseded by the multiformats module + dependencies: + varint: 5.0.2 + + /multicodec@1.0.4: + resolution: {integrity: sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==} + deprecated: This module has been superseded by the multiformats module + dependencies: + buffer: 5.7.1 + varint: 5.0.2 + + /multihashes@0.4.21: + resolution: {integrity: sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw==} + dependencies: + buffer: 5.7.1 + multibase: 0.7.0 + varint: 5.0.2 + + /nan@2.17.0: + resolution: {integrity: sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==} + requiresBuild: true + dev: false + + /nano-json-stream-parser@0.1.2: + resolution: {integrity: sha512-9MqxMH/BSJC7dnLsEMPyfN5Dvoo49IsPFYMcHw3Bcfc2kN0lpHRBSzlMSVx4HGyJ7s9B31CyBTVehWJoQ8Ctew==} + + /nanoid@3.3.4: + resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + dev: true + + /nanomatch@1.2.13: + resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==} + engines: {node: '>=0.10.0'} + dependencies: + arr-diff: 4.0.0 + array-unique: 0.3.2 + define-property: 2.0.2 + extend-shallow: 3.0.2 + fragment-cache: 0.2.1 + is-windows: 1.0.2 + kind-of: 6.0.3 + object.pick: 1.3.0 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + + /napi-build-utils@1.0.2: + resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==} + dev: false + optional: true + + /natural-compare-lite@1.4.0: + resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} + dev: true + + /natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + + /negotiator@0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} + + /neo-async@2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + dev: true + + /next-tick@1.1.0: + resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==} + + /nice-try@1.0.5: + resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} + dev: false + + /node-abi@2.30.1: + resolution: {integrity: sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w==} + dependencies: + semver: 5.7.1 + dev: false + optional: true + + /node-addon-api@2.0.2: + resolution: {integrity: sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==} + + /node-addon-api@4.3.0: + resolution: {integrity: sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==} + dev: false + optional: true + + /node-emoji@1.11.0: + resolution: {integrity: sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==} + dependencies: + lodash: 4.17.21 + dev: true + + /node-fetch@1.7.3: + resolution: {integrity: sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==} + dependencies: + encoding: 0.1.13 + is-stream: 1.1.0 + dev: false + + /node-fetch@2.6.7: + resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + dependencies: + whatwg-url: 5.0.0 + + /node-fetch@2.6.9: + resolution: {integrity: sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + dependencies: + whatwg-url: 5.0.0 + + /node-gyp-build@4.6.0: + resolution: {integrity: sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==} + hasBin: true + + /node-hid@0.7.9: + resolution: {integrity: sha512-vJnonTqmq3frCyTumJqG4g2IZcny3ynkfmbfDfQ90P3ZhRzcWYS/Um1ux6HFmAxmkaQnrZqIYHcGpL7kdqY8jA==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + bindings: 1.5.0 + nan: 2.17.0 + prebuild-install: 5.3.6 + dev: false + optional: true + + /node-releases@2.0.10: + resolution: {integrity: sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==} + + /noop-logger@0.1.1: + resolution: {integrity: sha512-6kM8CLXvuW5crTxsAtva2YLrRrDaiTIkIePWs9moLHqbFWT94WpNFjwS/5dfLfECg5i/lkmw3aoqVidxt23TEQ==} + dev: false + optional: true + + /normalize-package-data@2.5.0: + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + dependencies: + hosted-git-info: 2.8.9 + resolve: 1.22.1 + semver: 5.7.1 + validate-npm-package-license: 3.0.4 + dev: true + + /normalize-package-data@3.0.3: + resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} + engines: {node: '>=10'} + dependencies: + hosted-git-info: 4.1.0 + is-core-module: 2.11.0 + semver: 7.3.8 + validate-npm-package-license: 3.0.4 + dev: true + + /normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + dev: true + + /normalize-url@4.5.1: + resolution: {integrity: sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==} + engines: {node: '>=8'} + dev: false + optional: true + + /normalize-url@6.1.0: + resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} + engines: {node: '>=10'} + + /npkill@0.10.0: + resolution: {integrity: sha512-MRalMDHUGCEJP/TBshP9PjJoumS0Lih7ItSDm/vwcD5K0G82uMqCbV8gJwqgGy5jUw3p1NzQ/3g3smzoVXOdwQ==} + engines: {node: '>=14.0.0'} + hasBin: true + dependencies: + ansi-escapes: 6.0.0 + colors: 1.4.0 + get-folder-size: 2.0.1 + keypress: 0.2.1 + node-emoji: 1.11.0 + rxjs: 7.8.0 + dev: true + + /npmlog@4.1.2: + resolution: {integrity: sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==} + dependencies: + are-we-there-yet: 1.1.7 + console-control-strings: 1.1.0 + gauge: 2.7.4 + set-blocking: 2.0.0 + dev: false + optional: true + + /number-is-nan@1.0.1: + resolution: {integrity: sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==} + engines: {node: '>=0.10.0'} + dev: false + optional: true + + /number-to-bn@1.7.0: + resolution: {integrity: sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig==} + engines: {node: '>=6.5.0', npm: '>=3'} + dependencies: + bn.js: 4.11.6 + strip-hex-prefix: 1.0.0 + + /oauth-sign@0.9.0: + resolution: {integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==} + + /object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + /object-copy@0.1.0: + resolution: {integrity: sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==} + engines: {node: '>=0.10.0'} + dependencies: + copy-descriptor: 0.1.1 + define-property: 0.2.5 + kind-of: 3.2.2 + + /object-inspect@1.12.3: + resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} + + /object-is@1.1.5: + resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + dev: false + + /object-keys@0.4.0: + resolution: {integrity: sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw==} + dev: false + + /object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + + /object-visit@1.0.1: + resolution: {integrity: sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==} + engines: {node: '>=0.10.0'} + dependencies: + isobject: 3.0.1 + + /object.assign@4.1.4: + resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + has-symbols: 1.0.3 + object-keys: 1.1.1 + + /object.entries@1.1.6: + resolution: {integrity: sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.21.1 + dev: true + + /object.fromentries@2.0.6: + resolution: {integrity: sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.21.1 + dev: true + + /object.getownpropertydescriptors@2.1.5: + resolution: {integrity: sha512-yDNzckpM6ntyQiGTik1fKV1DcVDRS+w8bvpWNCBanvH5LfRX9O8WTHqQzG4RZwRAM4I0oU7TV11Lj5v0g20ibw==} + engines: {node: '>= 0.8'} + dependencies: + array.prototype.reduce: 1.0.5 + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.21.1 + dev: false + + /object.hasown@1.1.2: + resolution: {integrity: sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==} + dependencies: + define-properties: 1.1.4 + es-abstract: 1.21.1 + dev: true + + /object.pick@1.3.0: + resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==} + engines: {node: '>=0.10.0'} + dependencies: + isobject: 3.0.1 + + /object.values@1.1.6: + resolution: {integrity: sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.21.1 + dev: true + + /oboe@2.1.4: + resolution: {integrity: sha512-ymBJ4xSC6GBXLT9Y7lirj+xbqBLa+jADGJldGEYG7u8sZbS9GyG+u1Xk9c5cbriKwSpCg41qUhPjvU5xOpvIyQ==} + dependencies: + http-https: 1.0.0 + dev: false + + /oboe@2.1.5: + resolution: {integrity: sha512-zRFWiF+FoicxEs3jNI/WYUrVEgA7DeET/InK0XQuudGHRg8iIob3cNPrJTKaz4004uaA9Pbe+Dwa8iluhjLZWA==} + dependencies: + http-https: 1.0.0 + + /on-finished@2.3.0: + resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==} + engines: {node: '>= 0.8'} + dependencies: + ee-first: 1.1.1 + + /on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} + dependencies: + ee-first: 1.1.1 + + /once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + dependencies: + wrappy: 1.0.2 + + /open@8.4.1: + resolution: {integrity: sha512-/4b7qZNhv6Uhd7jjnREh1NjnPxlTq+XNWPG88Ydkj5AILcA5m3ajvcg57pB24EQjKv0dK62XnDqk9c/hkIG5Kg==} + engines: {node: '>=12'} + dependencies: + define-lazy-prop: 2.0.0 + is-docker: 2.2.1 + is-wsl: 2.2.0 + dev: true + + /optionator@0.9.1: + resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} + engines: {node: '>= 0.8.0'} + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.3 + + /os-homedir@1.0.2: + resolution: {integrity: sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==} + engines: {node: '>=0.10.0'} + dev: false + + /os-tmpdir@1.0.2: + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} + engines: {node: '>=0.10.0'} + + /outdent@0.5.0: + resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} + dev: true + + /p-cancelable@1.1.0: + resolution: {integrity: sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==} + engines: {node: '>=6'} + dev: false + optional: true + + /p-cancelable@2.1.1: + resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} + engines: {node: '>=8'} + + /p-cancelable@3.0.0: + resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==} + engines: {node: '>=12.20'} + + /p-filter@2.1.0: + resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} + engines: {node: '>=8'} + dependencies: + p-map: 2.1.0 + dev: true + + /p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + dependencies: + p-try: 2.2.0 + + /p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + dependencies: + yocto-queue: 0.1.0 + + /p-locate@3.0.0: + resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} + engines: {node: '>=6'} + dependencies: + p-limit: 2.3.0 + dev: false + + /p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + dependencies: + p-limit: 2.3.0 + dev: true + + /p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + dependencies: + p-limit: 3.1.0 + + /p-map@2.1.0: + resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} + engines: {node: '>=6'} + dev: true + + /p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + + /pako@2.1.0: + resolution: {integrity: sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==} + + /parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + dependencies: + callsites: 3.1.0 + + /parse-asn1@5.1.6: + resolution: {integrity: sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==} + dependencies: + asn1.js: 5.4.1 + browserify-aes: 1.2.0 + evp_bytestokey: 1.0.3 + pbkdf2: 3.1.2 + safe-buffer: 5.2.1 + dev: false + optional: true + + /parse-headers@2.0.5: + resolution: {integrity: sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==} + + /parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + dependencies: + '@babel/code-frame': 7.21.4 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + + /parseurl@1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} + + /pascalcase@0.1.1: + resolution: {integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==} + engines: {node: '>=0.10.0'} + + /patch-package@6.2.2: + resolution: {integrity: sha512-YqScVYkVcClUY0v8fF0kWOjDYopzIM8e3bj/RU1DPeEF14+dCGm6UeOYm4jvCyxqIEQ5/eJzmbWfDWnUleFNMg==} + engines: {npm: '>5'} + hasBin: true + dependencies: + '@yarnpkg/lockfile': 1.1.0 + chalk: 2.4.2 + cross-spawn: 6.0.5 + find-yarn-workspace-root: 1.2.1 + fs-extra: 7.0.1 + is-ci: 2.0.0 + klaw-sync: 6.0.0 + minimist: 1.2.7 + rimraf: 2.7.1 + semver: 5.7.1 + slash: 2.0.0 + tmp: 0.0.33 + transitivePeerDependencies: + - supports-color + dev: false + + /path-browserify@1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + dev: true + + /path-exists@3.0.0: + resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} + engines: {node: '>=4'} + dev: false + + /path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + /path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + /path-key@2.0.1: + resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==} + engines: {node: '>=4'} + dev: false + + /path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + /path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + /path-to-regexp@0.1.7: + resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} + + /path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + + /pbkdf2@3.1.2: + resolution: {integrity: sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==} + engines: {node: '>=0.12'} + dependencies: + create-hash: 1.2.0 + create-hmac: 1.1.7 + ripemd160: 2.0.2 + safe-buffer: 5.2.1 + sha.js: 2.4.11 + + /penpal@3.0.7: + resolution: {integrity: sha512-WSXiq5HnEvzvY05SHhaXcsviUmCvh4Ze8AiIZzvmdzaaYAAx4rx8c6Xq6+MaVDG/Nfve3VmGD8HyRP3CkPvPbQ==} + dev: false + + /performance-now@2.1.0: + resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==} + + /picocolors@1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + + /picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + /pify@2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} + dev: false + + /pify@3.0.0: + resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} + engines: {node: '>=4'} + dev: false + + /pify@4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} + dev: true + + /pify@5.0.0: + resolution: {integrity: sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==} + engines: {node: '>=10'} + dev: false + + /pkg-dir@4.2.0: + resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} + engines: {node: '>=8'} + dependencies: + find-up: 4.1.0 + dev: true + + /pngjs@3.4.0: + resolution: {integrity: sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==} + engines: {node: '>=4.0.0'} + dev: false + + /pocket-js-core@0.0.3: + resolution: {integrity: sha512-OUTEvEVutdjLT6YyldvAlSebpBueUUWg2XKxGNt5u3QqrmLpBOOBmdDnGMNJ+lEwXtko+JqgwFq+HTi4g1QDVg==} + dependencies: + axios: 0.18.1 + transitivePeerDependencies: + - supports-color + dev: false + + /popper.js@1.14.3: + resolution: {integrity: sha512-3lmujhsHXzb83+sI0PzfrE3O1XHZG8m8MXNMTupvA6LrM1/nnsiqYaacYc/RIente9VqnTDPztGEM8uvPAMGyg==} + deprecated: You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1 + dev: false + + /posix-character-classes@0.1.1: + resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==} + engines: {node: '>=0.10.0'} + + /postcss-media-query-parser@0.2.3: + resolution: {integrity: sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==} + dev: true + + /postcss-resolve-nested-selector@0.1.1: + resolution: {integrity: sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==} + dev: true + + /postcss-safe-parser@6.0.0(postcss@8.4.21): + resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.3.3 + dependencies: + postcss: 8.4.21 + dev: true + + /postcss-scss@4.0.6(postcss@8.4.21): + resolution: {integrity: sha512-rLDPhJY4z/i4nVFZ27j9GqLxj1pwxE80eAzUNRMXtcpipFYIeowerzBgG3yJhMtObGEXidtIgbUpQ3eLDsf5OQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.4.19 + dependencies: + postcss: 8.4.21 + dev: true + + /postcss-selector-parser@6.0.11: + resolution: {integrity: sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==} + engines: {node: '>=4'} + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + dev: true + + /postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + dev: true + + /postcss@8.4.21: + resolution: {integrity: sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.4 + picocolors: 1.0.0 + source-map-js: 1.0.2 + dev: true + + /preact@10.13.0: + resolution: {integrity: sha512-ERdIdUpR6doqdaSIh80hvzebHB7O6JxycOhyzAeLEchqOq/4yueslQbfnPwXaNhAYacFTyCclhwkEbOumT0tHw==} + dev: false + + /preact@10.4.1: + resolution: {integrity: sha512-WKrRpCSwL2t3tpOOGhf2WfTpcmbpxaWtDbdJdKdjd0aEiTkvOmS4NBkG6kzlaAHI9AkQ3iVqbFWM3Ei7mZ4o1Q==} + dev: false + + /prebuild-install@5.3.6: + resolution: {integrity: sha512-s8Aai8++QQGi4sSbs/M1Qku62PFK49Jm1CbgXklGz4nmHveDq0wzJkg7Na5QbnO1uNH8K7iqx2EQ/mV0MZEmOg==} + engines: {node: '>=6'} + hasBin: true + dependencies: + detect-libc: 1.0.3 + expand-template: 2.0.3 + github-from-package: 0.0.0 + minimist: 1.2.7 + mkdirp-classic: 0.5.3 + napi-build-utils: 1.0.2 + node-abi: 2.30.1 + noop-logger: 0.1.1 + npmlog: 4.1.2 + pump: 3.0.0 + rc: 1.2.8 + simple-get: 3.1.1 + tar-fs: 2.1.1 + tunnel-agent: 0.6.0 + which-pm-runs: 1.1.0 + dev: false + optional: true + + /precond@0.2.3: + resolution: {integrity: sha512-QCYG84SgGyGzqJ/vlMsxeXd/pgL/I94ixdNFyh1PusWmTCyVfPJjZ1K1jvHtsbfnXQs2TSkEP2fR7QiMZAnKFQ==} + engines: {node: '>= 0.6'} + dev: false + + /preferred-pm@3.0.3: + resolution: {integrity: sha512-+wZgbxNES/KlJs9q40F/1sfOd/j7f1O9JaHcW5Dsn3aUUOZg3L2bjpVUcKV2jvtElYfoTuQiNeMfQJ4kwUAhCQ==} + engines: {node: '>=10'} + dependencies: + find-up: 5.0.0 + find-yarn-workspace-root2: 1.2.16 + path-exists: 4.0.0 + which-pm: 2.0.0 + dev: true + + /prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + + /prepend-http@2.0.0: + resolution: {integrity: sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==} + engines: {node: '>=4'} + dev: false + optional: true + + /prettier-linter-helpers@1.0.0: + resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} + engines: {node: '>=6.0.0'} + dependencies: + fast-diff: 1.2.0 + dev: true + + /prettier@2.8.4: + resolution: {integrity: sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw==} + engines: {node: '>=10.13.0'} + hasBin: true + dev: true + + /private@0.1.8: + resolution: {integrity: sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==} + engines: {node: '>= 0.6'} + dev: false + + /process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + dev: false + + /process@0.11.10: + resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} + engines: {node: '>= 0.6.0'} + + /promise-to-callback@1.0.0: + resolution: {integrity: sha512-uhMIZmKM5ZteDMfLgJnoSq9GCwsNKrYau73Awf1jIy6/eUcuuZ3P+CD9zUv0kJsIUbU+x6uLNIhXhLHDs1pNPA==} + engines: {node: '>=0.10.0'} + dependencies: + is-fn: 1.0.0 + set-immediate-shim: 1.0.1 + dev: false + + /prop-types@15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react-is: 16.13.1 + + /proxy-addr@2.0.7: + resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} + engines: {node: '>= 0.10'} + dependencies: + forwarded: 0.2.0 + ipaddr.js: 1.9.1 + + /prr@1.0.1: + resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==} + dev: false + + /pseudomap@1.0.2: + resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} + + /psl@1.9.0: + resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} + + /public-encrypt@4.0.3: + resolution: {integrity: sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==} + dependencies: + bn.js: 4.12.0 + browserify-rsa: 4.1.0 + create-hash: 1.2.0 + parse-asn1: 5.1.6 + randombytes: 2.1.0 + safe-buffer: 5.2.1 + dev: false + optional: true + + /pull-cat@1.1.11: + resolution: {integrity: sha512-i3w+xZ3DCtTVz8S62hBOuNLRHqVDsHMNZmgrZsjPnsxXUgbWtXEee84lo1XswE7W2a3WHyqsNuDJTjVLAQR8xg==} + dev: false + + /pull-defer@0.2.3: + resolution: {integrity: sha512-/An3KE7mVjZCqNhZsr22k1Tx8MACnUnHZZNPSJ0S62td8JtYr/AiRG42Vz7Syu31SoTLUzVIe61jtT/pNdjVYA==} + dev: false + + /pull-level@2.0.4: + resolution: {integrity: sha512-fW6pljDeUThpq5KXwKbRG3X7Ogk3vc75d5OQU/TvXXui65ykm+Bn+fiktg+MOx2jJ85cd+sheufPL+rw9QSVZg==} + dependencies: + level-post: 1.0.7 + pull-cat: 1.1.11 + pull-live: 1.0.1 + pull-pushable: 2.2.0 + pull-stream: 3.7.0 + pull-window: 2.1.4 + stream-to-pull-stream: 1.7.3 + dev: false + + /pull-live@1.0.1: + resolution: {integrity: sha512-tkNz1QT5gId8aPhV5+dmwoIiA1nmfDOzJDlOOUpU5DNusj6neNd3EePybJ5+sITr2FwyCs/FVpx74YMCfc8YeA==} + dependencies: + pull-cat: 1.1.11 + pull-stream: 3.7.0 + dev: false + + /pull-pushable@2.2.0: + resolution: {integrity: sha512-M7dp95enQ2kaHvfCt2+DJfyzgCSpWVR2h2kWYnVsW6ZpxQBx5wOu0QWOvQPVoPnBLUZYitYP2y7HyHkLQNeGXg==} + dev: false + + /pull-stream@3.7.0: + resolution: {integrity: sha512-Eco+/R004UaCK2qEDE8vGklcTG2OeZSVm1kTUQNrykEjDwcFXDZhygFDsW49DbXyJMEhHeRL3z5cRVqPAhXlIw==} + dev: false + + /pull-window@2.1.4: + resolution: {integrity: sha512-cbDzN76BMlcGG46OImrgpkMf/VkCnupj8JhsrpBw3aWBM9ye345aYnqitmZCgauBkc0HbbRRn9hCnsa3k2FNUg==} + dependencies: + looper: 2.0.0 + dev: false + + /pump@3.0.0: + resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + + /punycode@2.1.0: + resolution: {integrity: sha512-Yxz2kRwT90aPiWEMHVYnEf4+rhwF1tBmmZ4KepCP+Wkium9JxtWnUm1nqGwpiAHr/tnTSeHqr3wb++jgSkXjhA==} + engines: {node: '>=6'} + + /punycode@2.3.0: + resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} + engines: {node: '>=6'} + + /qrcode@1.4.4: + resolution: {integrity: sha512-oLzEC5+NKFou9P0bMj5+v6Z40evexeE29Z9cummZXZ9QXyMr3lphkURzxjXgPJC5azpxcshoDWV1xE46z+/c3Q==} + engines: {node: '>=4'} + hasBin: true + dependencies: + buffer: 5.7.1 + buffer-alloc: 1.2.0 + buffer-from: 1.1.2 + dijkstrajs: 1.0.2 + isarray: 2.0.5 + pngjs: 3.4.0 + yargs: 13.3.2 + dev: false + + /qs@6.11.0: + resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} + engines: {node: '>=0.6'} + dependencies: + side-channel: 1.0.4 + + /qs@6.5.2: + resolution: {integrity: sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==} + engines: {node: '>=0.6'} + + /qs@6.5.3: + resolution: {integrity: sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==} + engines: {node: '>=0.6'} + + /query-string@5.1.1: + resolution: {integrity: sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==} + engines: {node: '>=0.10.0'} + dependencies: + decode-uri-component: 0.2.2 + object-assign: 4.1.1 + strict-uri-encode: 1.1.0 + + /query-string@6.13.5: + resolution: {integrity: sha512-svk3xg9qHR39P3JlHuD7g3nRnyay5mHbrPctEBDUxUkHRifPHXJDhBUycdCC0NBjXoDf44Gb+IsOZL1Uwn8M/Q==} + engines: {node: '>=6'} + dependencies: + decode-uri-component: 0.2.2 + split-on-first: 1.1.0 + strict-uri-encode: 2.0.0 + dev: false + + /queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + /quick-lru@4.0.1: + resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} + engines: {node: '>=8'} + dev: true + + /quick-lru@5.1.1: + resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} + engines: {node: '>=10'} + + /randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + dependencies: + safe-buffer: 5.2.1 + + /randomfill@1.0.4: + resolution: {integrity: sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==} + dependencies: + randombytes: 2.1.0 + safe-buffer: 5.2.1 + dev: false + optional: true + + /range-parser@1.2.1: + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + engines: {node: '>= 0.6'} + + /raw-body@2.3.3: + resolution: {integrity: sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==} + engines: {node: '>= 0.8'} + dependencies: + bytes: 3.0.0 + http-errors: 1.6.3 + iconv-lite: 0.4.23 + unpipe: 1.0.0 + + /raw-body@2.5.1: + resolution: {integrity: sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==} + engines: {node: '>= 0.8'} + dependencies: + bytes: 3.1.2 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + unpipe: 1.0.0 + + /rc@1.2.8: + resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} + hasBin: true + dependencies: + deep-extend: 0.6.0 + ini: 1.3.8 + minimist: 1.2.7 + strip-json-comments: 2.0.1 + dev: false + optional: true + + /react-dom@17.0.2(react@17.0.2): + resolution: {integrity: sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==} + peerDependencies: + react: 17.0.2 + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react: 17.0.2 + scheduler: 0.20.2 + dev: true + + /react-dom@18.2.0(react@18.2.0): + resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} + peerDependencies: + react: ^18.2.0 + dependencies: + loose-envify: 1.4.0 + react: 18.2.0 + scheduler: 0.23.0 + dev: false + + /react-hot-toast@2.4.0(csstype@3.1.1)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-qnnVbXropKuwUpriVVosgo8QrB+IaPJCpL8oBI6Ov84uvHZ5QQcTp2qg6ku2wNfgJl6rlQXJIQU5q+5lmPOutA==} + engines: {node: '>=10'} + peerDependencies: + react: '>=16' + react-dom: '>=16' + dependencies: + goober: 2.1.12(csstype@3.1.1) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + transitivePeerDependencies: + - csstype + dev: false + + /react-is@16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + + /react-is@18.2.0: + resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} + + /react-refresh@0.14.0: + resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==} + engines: {node: '>=0.10.0'} + dev: true + + /react-router-dom@6.8.2(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-N/oAF1Shd7g4tWy+75IIufCGsHBqT74tnzHQhbiUTYILYF0Blk65cg+HPZqwC+6SqEyx033nKqU7by38v3lBZg==} + engines: {node: '>=14'} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + dependencies: + '@remix-run/router': 1.3.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-router: 6.8.2(react@18.2.0) + dev: false + + /react-router@6.8.2(react@18.2.0): + resolution: {integrity: sha512-lF7S0UmXI5Pd8bmHvMdPKI4u4S5McxmHnzJhrYi9ZQ6wE+DA8JN5BzVC5EEBuduWWDaiJ8u6YhVOCmThBli+rw==} + engines: {node: '>=14'} + peerDependencies: + react: '>=16.8' + dependencies: + '@remix-run/router': 1.3.3 + react: 18.2.0 + dev: false + + /react-transition-group@4.4.5(react-dom@17.0.2)(react@17.0.2): + resolution: {integrity: sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==} + peerDependencies: + react: '>=16.6.0' + react-dom: '>=16.6.0' + dependencies: + '@babel/runtime': 7.21.5 + dom-helpers: 5.2.1 + loose-envify: 1.4.0 + prop-types: 15.8.1 + react: 17.0.2 + react-dom: 17.0.2(react@17.0.2) + dev: true + + /react-transition-group@4.4.5(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==} + peerDependencies: + react: '>=16.6.0' + react-dom: '>=16.6.0' + dependencies: + '@babel/runtime': 7.21.5 + dom-helpers: 5.2.1 + loose-envify: 1.4.0 + prop-types: 15.8.1 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /react@17.0.2: + resolution: {integrity: sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==} + engines: {node: '>=0.10.0'} + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + dev: true + + /react@18.2.0: + resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} + engines: {node: '>=0.10.0'} + dependencies: + loose-envify: 1.4.0 + dev: false + + /read-pkg-up@7.0.1: + resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} + engines: {node: '>=8'} + dependencies: + find-up: 4.1.0 + read-pkg: 5.2.0 + type-fest: 0.8.1 + dev: true + + /read-pkg@5.2.0: + resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} + engines: {node: '>=8'} + dependencies: + '@types/normalize-package-data': 2.4.1 + normalize-package-data: 2.5.0 + parse-json: 5.2.0 + type-fest: 0.6.0 + dev: true + + /read-yaml-file@1.1.0: + resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} + engines: {node: '>=6'} + dependencies: + graceful-fs: 4.2.10 + js-yaml: 3.14.1 + pify: 4.0.1 + strip-bom: 3.0.0 + dev: true + + /readable-stream@1.0.34: + resolution: {integrity: sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==} + dependencies: + core-util-is: 1.0.2 + inherits: 2.0.4 + isarray: 0.0.1 + string_decoder: 0.10.31 + dev: false + + /readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + dependencies: + core-util-is: 1.0.2 + inherits: 2.0.4 + isarray: 1.0.0 + process-nextick-args: 2.0.1 + safe-buffer: 5.1.2 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + dev: false + + /readable-stream@3.6.0: + resolution: {integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==} + engines: {node: '>= 6'} + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + + /readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + dependencies: + picomatch: 2.3.1 + dev: true + + /redent@3.0.0: + resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} + engines: {node: '>=8'} + dependencies: + indent-string: 4.0.0 + strip-indent: 3.0.0 + dev: true + + /regenerate@1.4.2: + resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} + dev: false + + /regenerator-runtime@0.11.1: + resolution: {integrity: sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==} + dev: false + + /regenerator-runtime@0.12.1: + resolution: {integrity: sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==} + dev: false + + /regenerator-runtime@0.13.11: + resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} + + /regenerator-transform@0.10.1: + resolution: {integrity: sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==} + dependencies: + babel-runtime: 6.26.0 + babel-types: 6.26.0 + private: 0.1.8 + dev: false + + /regex-not@1.0.2: + resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==} + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: 3.0.2 + safe-regex: 1.1.0 + + /regexp.prototype.flags@1.4.3: + resolution: {integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + functions-have-names: 1.2.3 + + /regexpp@3.2.0: + resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} + engines: {node: '>=8'} + + /regexpu-core@2.0.0: + resolution: {integrity: sha512-tJ9+S4oKjxY8IZ9jmjnp/mtytu1u3iyIQAfmI51IKWH6bFf7XR1ybtaO6j7INhZKXOTYADk7V5qxaqLkmNxiZQ==} + dependencies: + regenerate: 1.4.2 + regjsgen: 0.2.0 + regjsparser: 0.1.5 + dev: false + + /regjsgen@0.2.0: + resolution: {integrity: sha512-x+Y3yA24uF68m5GA+tBjbGYo64xXVJpbToBaWCoSNSc1hdk6dfctaRWrNFTVJZIIhL5GxW8zwjoixbnifnK59g==} + dev: false + + /regjsparser@0.1.5: + resolution: {integrity: sha512-jlQ9gYLfk2p3V5Ag5fYhA7fv7OHzd1KUH0PRP46xc3TgwjwgROIW572AfYg/X9kaNq/LJnu6oJcFRXlIrGoTRw==} + hasBin: true + dependencies: + jsesc: 0.5.0 + dev: false + + /remove-accents@0.4.2: + resolution: {integrity: sha512-7pXIJqJOq5tFgG1A2Zxti3Ht8jJF337m4sowbuHsW30ZnkQFnDzy9qBNhgzX8ZLW4+UBcXiiR7SwR6pokHsxiA==} + dev: false + + /repeat-element@1.1.4: + resolution: {integrity: sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==} + engines: {node: '>=0.10.0'} + + /repeat-string@1.6.1: + resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} + engines: {node: '>=0.10'} + + /repeating@2.0.1: + resolution: {integrity: sha512-ZqtSMuVybkISo2OWvqvm7iHSWngvdaW3IpsT9/uP8v4gMi591LY6h35wdOfvQdWCKFWZWm2Y1Opp4kV7vQKT6A==} + engines: {node: '>=0.10.0'} + dependencies: + is-finite: 1.1.0 + dev: false + + /request@2.88.2: + resolution: {integrity: sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==} + engines: {node: '>= 6'} + deprecated: request has been deprecated, see https://github.com/request/request/issues/3142 + dependencies: + aws-sign2: 0.7.0 + aws4: 1.12.0 + caseless: 0.12.0 + combined-stream: 1.0.8 + extend: 3.0.2 + forever-agent: 0.6.1 + form-data: 2.3.3 + har-validator: 5.1.5 + http-signature: 1.2.0 + is-typedarray: 1.0.0 + isstream: 0.1.2 + json-stringify-safe: 5.0.1 + mime-types: 2.1.35 + oauth-sign: 0.9.0 + performance-now: 2.1.0 + qs: 6.5.3 + safe-buffer: 5.2.1 + tough-cookie: 2.5.0 + tunnel-agent: 0.6.0 + uuid: 3.4.0 + + /require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + /require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + dev: true + + /require-main-filename@2.0.0: + resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} + + /resolve-alpn@1.2.1: + resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} + + /resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + /resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + dev: true + + /resolve-url@0.2.1: + resolution: {integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==} + deprecated: https://github.com/lydell/resolve-url#deprecated + + /resolve@1.19.0: + resolution: {integrity: sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==} + dependencies: + is-core-module: 2.11.0 + path-parse: 1.0.7 + dev: true + + /resolve@1.22.1: + resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} + hasBin: true + dependencies: + is-core-module: 2.11.0 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + /resolve@2.0.0-next.4: + resolution: {integrity: sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==} + hasBin: true + dependencies: + is-core-module: 2.11.0 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: true + + /responselike@1.0.2: + resolution: {integrity: sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==} + dependencies: + lowercase-keys: 1.0.1 + dev: false + optional: true + + /responselike@2.0.1: + resolution: {integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==} + dependencies: + lowercase-keys: 2.0.0 + + /resumer@0.0.0: + resolution: {integrity: sha512-Fn9X8rX8yYF4m81rZCK/5VmrmsSbqS/i3rDLl6ZZHAXgC2nTAx3dhwG8q8odP/RmdLa2YrybDJaAMg+X1ajY3w==} + dependencies: + through: 2.3.8 + dev: false + + /ret@0.1.15: + resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} + engines: {node: '>=0.12'} + + /reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + /rimraf@2.7.1: + resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} + hasBin: true + dependencies: + glob: 7.2.3 + dev: false + + /rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + hasBin: true + dependencies: + glob: 7.2.3 + + /ripemd160@2.0.2: + resolution: {integrity: sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==} + dependencies: + hash-base: 3.1.0 + inherits: 2.0.4 + + /rlp@2.2.7: + resolution: {integrity: sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==} + hasBin: true + dependencies: + bn.js: 5.2.1 + + /rollup-plugin-image-files@1.4.2: + resolution: {integrity: sha512-tlydpQdGFssMWhPdWA9SFh4IGVSCzceNgJarJDID+km151IeIVzjATl8ZERNGS/QwMty25iammQqauxl1VUqDQ==} + dependencies: + rollup: 0.64.1 + rollup-pluginutils: 2.4.1 + transitivePeerDependencies: + - supports-color + dev: false + + /rollup-plugin-re@1.0.7: + resolution: {integrity: sha512-TyFf3QaV/eJ/50k4wp5BM0SodGy0Idq0uOgvA1q3gHRwgXLPVX5y3CRKkBuHzKTZPC9CTZX7igKw5UvgjDls8w==} + dependencies: + magic-string: 0.16.0 + rollup-pluginutils: 2.4.1 + transitivePeerDependencies: + - supports-color + dev: true + + /rollup-pluginutils@2.4.1: + resolution: {integrity: sha512-wesMQ9/172IJDIW/lYWm0vW0LiKe5Ekjws481R7z9WTRtmO59cqyM/2uUlxvf6yzm/fElFmHUobeQOYz46dZJw==} + dependencies: + estree-walker: 0.6.1 + micromatch: 3.1.10 + transitivePeerDependencies: + - supports-color + + /rollup@0.64.1: + resolution: {integrity: sha512-+ThdVXrvonJdOTzyybMBipP0uz605Z8AnzWVY3rf+cSGnLO7uNkJBlN+9jXqWOomkvumXfm/esmBpA5d53qm7g==} + hasBin: true + dependencies: + '@types/estree': 0.0.39 + '@types/node': 18.15.3 + dev: false + + /rollup@3.15.0: + resolution: {integrity: sha512-F9hrCAhnp5/zx/7HYmftvsNBkMfLfk/dXUh73hPSM2E3CRgap65orDNJbLetoiUFwSAk6iHPLvBrZ5iHYvzqsg==} + engines: {node: '>=14.18.0', npm: '>=8.0.0'} + hasBin: true + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + dependencies: + queue-microtask: 1.2.3 + + /rustbn.js@0.2.0: + resolution: {integrity: sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA==} + dev: false + + /rxjs@6.6.7: + resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==} + engines: {npm: '>=2.0.0'} + dependencies: + tslib: 1.14.1 + dev: false + + /rxjs@7.8.0: + resolution: {integrity: sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==} + dependencies: + tslib: 2.5.0 + dev: true + + /safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + + /safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + /safe-event-emitter@1.0.1: + resolution: {integrity: sha512-e1wFe99A91XYYxoQbcq2ZJUWurxEyP8vfz7A7vuUe1s95q8r5ebraVaA1BukYJcpM6V16ugWoD9vngi8Ccu5fg==} + deprecated: Renamed to @metamask/safe-event-emitter + dependencies: + events: 3.3.0 + dev: false + + /safe-regex-test@1.0.0: + resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.0 + is-regex: 1.1.4 + + /safe-regex@1.1.0: + resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==} + dependencies: + ret: 0.1.15 + + /safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + /sass@1.58.3: + resolution: {integrity: sha512-Q7RaEtYf6BflYrQ+buPudKR26/lH+10EmO9bBqbmPh/KeLqv8bjpTNqxe71ocONqXq+jYiCbpPUmQMS+JJPk4A==} + engines: {node: '>=12.0.0'} + hasBin: true + dependencies: + chokidar: 3.5.3 + immutable: 4.2.4 + source-map-js: 1.0.2 + dev: true + + /scheduler@0.20.2: + resolution: {integrity: sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==} + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + dev: true + + /scheduler@0.23.0: + resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} + dependencies: + loose-envify: 1.4.0 + dev: false + + /scrypt-js@2.0.4: + resolution: {integrity: sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==} + dev: false + + /scrypt-js@3.0.1: + resolution: {integrity: sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==} + + /scryptsy@1.2.1: + resolution: {integrity: sha512-aldIRgMozSJ/Gl6K6qmJZysRP82lz83Wb42vl4PWN8SaLFHIaOzLPc9nUUW2jQN88CuGm5q5HefJ9jZ3nWSmTw==} + dependencies: + pbkdf2: 3.1.2 + dev: false + optional: true + + /secp256k1@3.8.0: + resolution: {integrity: sha512-k5ke5avRZbtl9Tqx/SA7CbY3NF6Ro+Sj9cZxezFzuBlLDmyqPiL8hJJ+EmzD8Ig4LUDByHJ3/iPOVoRixs/hmw==} + engines: {node: '>=4.0.0'} + requiresBuild: true + dependencies: + bindings: 1.5.0 + bip66: 1.1.5 + bn.js: 4.12.0 + create-hash: 1.2.0 + drbg.js: 1.0.1 + elliptic: 6.5.4 + nan: 2.17.0 + safe-buffer: 5.2.1 + dev: false + + /secp256k1@4.0.3: + resolution: {integrity: sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==} + engines: {node: '>=10.0.0'} + requiresBuild: true + dependencies: + elliptic: 6.5.4 + node-addon-api: 2.0.2 + node-gyp-build: 4.6.0 + + /seedrandom@3.0.1: + resolution: {integrity: sha512-1/02Y/rUeU1CJBAGLebiC5Lbo5FnB22gQbIFFYTLkwvp1xdABZJH1sn4ZT1MzXmPpzv+Rf/Lu2NcsLJiK4rcDg==} + dev: false + + /semaphore-async-await@1.5.1: + resolution: {integrity: sha512-b/ptP11hETwYWpeilHXXQiV5UJNJl7ZWWooKRE5eBIYWoom6dZ0SluCIdCtKycsMtZgKWE01/qAw6jblw1YVhg==} + engines: {node: '>=4.1'} + dev: false + + /semaphore@1.1.0: + resolution: {integrity: sha512-O4OZEaNtkMd/K0i6js9SL+gqy0ZCBMgUvlSqHKi4IBdjhe7wB8pwztUk1BbZ1fmrvpwFrPbHzqd2w5pTcJH6LA==} + engines: {node: '>=0.8.0'} + dev: false + + /semver@5.4.1: + resolution: {integrity: sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==} + hasBin: true + dev: false + + /semver@5.7.1: + resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} + hasBin: true + + /semver@6.3.0: + resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} + hasBin: true + + /semver@7.3.8: + resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + + /send@0.16.2: + resolution: {integrity: sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==} + engines: {node: '>= 0.8.0'} + dependencies: + debug: 2.6.9 + depd: 1.1.2 + destroy: 1.0.4 + encodeurl: 1.0.2 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 0.5.2 + http-errors: 1.6.3 + mime: 1.4.1 + ms: 2.0.0 + on-finished: 2.3.0 + range-parser: 1.2.1 + statuses: 1.4.0 + transitivePeerDependencies: + - supports-color + + /serve-static@1.13.2: + resolution: {integrity: sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==} + engines: {node: '>= 0.8.0'} + dependencies: + encodeurl: 1.0.2 + escape-html: 1.0.3 + parseurl: 1.3.3 + send: 0.16.2 + transitivePeerDependencies: + - supports-color + + /servify@0.1.12: + resolution: {integrity: sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw==} + engines: {node: '>=6'} + dependencies: + body-parser: 1.20.1 + cors: 2.8.5 + express: 4.16.4 + request: 2.88.2 + xhr: 2.6.0 + transitivePeerDependencies: + - supports-color + + /set-blocking@2.0.0: + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + + /set-immediate-shim@1.0.1: + resolution: {integrity: sha512-Li5AOqrZWCVA2n5kryzEmqai6bKSIvpz5oUJHPVj6+dsbD3X1ixtsY5tEnsaNpH3pFAHmG8eIHUrtEtohrg+UQ==} + engines: {node: '>=0.10.0'} + dev: false + + /set-value@2.0.1: + resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==} + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: 2.0.1 + is-extendable: 0.1.1 + is-plain-object: 2.0.4 + split-string: 3.1.0 + + /setimmediate@1.0.4: + resolution: {integrity: sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog==} + dev: false + + /setimmediate@1.0.5: + resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} + + /setprototypeof@1.1.0: + resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==} + + /setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + + /sha.js@2.4.11: + resolution: {integrity: sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==} + hasBin: true + dependencies: + inherits: 2.0.4 + safe-buffer: 5.2.1 + + /shebang-command@1.2.0: + resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} + engines: {node: '>=0.10.0'} + dependencies: + shebang-regex: 1.0.0 + + /shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + dependencies: + shebang-regex: 3.0.0 + + /shebang-regex@1.0.0: + resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} + engines: {node: '>=0.10.0'} + + /shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + /shiki@0.14.1: + resolution: {integrity: sha512-+Jz4nBkCBe0mEDqo1eKRcCdjRtrCjozmcbTUjbPTX7OOJfEbTZzlUWlZtGe3Gb5oV1/jnojhG//YZc3rs9zSEw==} + dependencies: + ansi-sequence-parser: 1.1.0 + jsonc-parser: 3.2.0 + vscode-oniguruma: 1.7.0 + vscode-textmate: 8.0.0 + dev: true + + /side-channel@1.0.4: + resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.0 + object-inspect: 1.12.3 + + /signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + + /simple-concat@1.0.1: + resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} + + /simple-get@2.8.2: + resolution: {integrity: sha512-Ijd/rV5o+mSBBs4F/x9oDPtTx9Zb6X9brmnXvMW4J7IR15ngi9q5xxqWBKU744jTZiaXtxaPL7uHG6vtN8kUkw==} + dependencies: + decompress-response: 3.3.0 + once: 1.4.0 + simple-concat: 1.0.1 + + /simple-get@3.1.1: + resolution: {integrity: sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==} + dependencies: + decompress-response: 4.2.1 + once: 1.4.0 + simple-concat: 1.0.1 + dev: false + optional: true + + /slash@1.0.0: + resolution: {integrity: sha512-3TYDR7xWt4dIqV2JauJr+EJeW356RXijHeUlO+8djJ+uBXPn8/2dpzBc8yQhh583sVvc9CvFAeQVgijsH+PNNg==} + engines: {node: '>=0.10.0'} + dev: false + + /slash@2.0.0: + resolution: {integrity: sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==} + engines: {node: '>=6'} + dev: false + + /slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + + /slash@4.0.0: + resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} + engines: {node: '>=12'} + dev: true + + /slice-ansi@4.0.0: + resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + dev: true + + /smartwrap@2.0.2: + resolution: {integrity: sha512-vCsKNQxb7PnCNd2wY1WClWifAc2lwqsG8OaswpJkVJsvMGcnEntdTCDajZCkk93Ay1U3t/9puJmb525Rg5MZBA==} + engines: {node: '>=6'} + hasBin: true + dependencies: + array.prototype.flat: 1.3.1 + breakword: 1.0.5 + grapheme-splitter: 1.0.4 + strip-ansi: 6.0.1 + wcwidth: 1.0.1 + yargs: 15.4.1 + dev: true + + /snapdragon-node@2.1.1: + resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==} + engines: {node: '>=0.10.0'} + dependencies: + define-property: 1.0.0 + isobject: 3.0.1 + snapdragon-util: 3.0.1 + + /snapdragon-util@3.0.1: + resolution: {integrity: sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 3.2.2 + + /snapdragon@0.8.2: + resolution: {integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==} + engines: {node: '>=0.10.0'} + dependencies: + base: 0.11.2 + debug: 2.6.9 + define-property: 0.2.5 + extend-shallow: 2.0.1 + map-cache: 0.2.2 + source-map: 0.5.7 + source-map-resolve: 0.5.3 + use: 3.1.1 + transitivePeerDependencies: + - supports-color + + /sort-object-keys@1.1.3: + resolution: {integrity: sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg==} + dev: true + + /sort-package-json@2.4.1: + resolution: {integrity: sha512-Nd3rgLBJcZ4iw7tpuOhwBupG6SvUDU0Fy1cZGAMorA2JmDUb+29Dg5phJK9gapa2Ak9d15w/RuMl/viwX+nKwQ==} + hasBin: true + dependencies: + detect-indent: 7.0.1 + detect-newline: 4.0.0 + git-hooks-list: 3.0.0 + globby: 13.1.3 + is-plain-obj: 4.1.0 + sort-object-keys: 1.1.3 + dev: true + + /source-map-js@1.0.2: + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} + engines: {node: '>=0.10.0'} + dev: true + + /source-map-resolve@0.5.3: + resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==} + deprecated: See https://github.com/lydell/source-map-resolve#deprecated + dependencies: + atob: 2.1.2 + decode-uri-component: 0.2.2 + resolve-url: 0.2.1 + source-map-url: 0.4.1 + urix: 0.1.0 + + /source-map-support@0.4.18: + resolution: {integrity: sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==} + dependencies: + source-map: 0.5.7 + dev: false + + /source-map-support@0.5.12: + resolution: {integrity: sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ==} + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + dev: false + + /source-map-url@0.4.1: + resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==} + deprecated: See https://github.com/lydell/source-map-url#deprecated + + /source-map@0.5.7: + resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} + engines: {node: '>=0.10.0'} + + /source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + /spawndamnit@2.0.0: + resolution: {integrity: sha512-j4JKEcncSjFlqIwU5L/rp2N5SIPsdxaRsIv678+TZxZ0SRDJTm8JrxJMjE/XuiEZNEir3S8l0Fa3Ke339WI4qA==} + dependencies: + cross-spawn: 5.1.0 + signal-exit: 3.0.7 + dev: true + + /spdx-correct@3.1.1: + resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==} + dependencies: + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.12 + dev: true + + /spdx-exceptions@2.3.0: + resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} + dev: true + + /spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + dependencies: + spdx-exceptions: 2.3.0 + spdx-license-ids: 3.0.12 + dev: true + + /spdx-license-ids@3.0.12: + resolution: {integrity: sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==} + dev: true + + /split-on-first@1.1.0: + resolution: {integrity: sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==} + engines: {node: '>=6'} + dev: false + + /split-string@3.1.0: + resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==} + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: 3.0.2 + + /sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + dev: true + + /sshpk@1.17.0: + resolution: {integrity: sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==} + engines: {node: '>=0.10.0'} + hasBin: true + dependencies: + asn1: 0.2.6 + assert-plus: 1.0.0 + bcrypt-pbkdf: 1.0.2 + dashdash: 1.14.1 + ecc-jsbn: 0.1.2 + getpass: 0.1.7 + jsbn: 0.1.1 + safer-buffer: 2.1.2 + tweetnacl: 0.14.5 + + /starknet@4.17.1: + resolution: {integrity: sha512-xihdf+pWUCdKK30r+fNLfg+5RHHpTNw20gvrucbcPPDnsDr2bjwtFu3UjXOtHnbys6qF8fW3ttMkctRoQ5J6Xg==} + dependencies: + '@ethersproject/bytes': 5.7.0 + bn.js: 5.2.1 + elliptic: 6.5.4 + ethereum-cryptography: 1.2.0 + hash.js: 1.1.7 + isomorphic-fetch: 3.0.0 + json-bigint: 1.0.0 + minimalistic-assert: 1.0.1 + pako: 2.1.0 + ts-custom-error: 3.3.1 + url-join: 4.0.1 + transitivePeerDependencies: + - encoding + dev: true + + /starknet@4.22.0: + resolution: {integrity: sha512-jC9Taxb6a/ht9zmS1LU/DSLfwJKpgCJnE9AktVksc5SE/+jQMpqxsq6fm7PRiqupjiqRC1DOS8N47cj+KaGv4Q==} + dependencies: + '@ethersproject/bytes': 5.7.0 + bn.js: 5.2.1 + elliptic: 6.5.4 + ethereum-cryptography: 1.2.0 + hash.js: 1.1.7 + isomorphic-fetch: 3.0.0 + json-bigint: 1.0.0 + minimalistic-assert: 1.0.1 + pako: 2.1.0 + ts-custom-error: 3.3.1 + url-join: 4.0.1 + transitivePeerDependencies: + - encoding + dev: false + + /static-extend@0.1.2: + resolution: {integrity: sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==} + engines: {node: '>=0.10.0'} + dependencies: + define-property: 0.2.5 + object-copy: 0.1.0 + + /statuses@1.4.0: + resolution: {integrity: sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==} + engines: {node: '>= 0.6'} + + /statuses@2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + engines: {node: '>= 0.8'} + + /stream-browserify@3.0.0: + resolution: {integrity: sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==} + dependencies: + inherits: 2.0.4 + readable-stream: 3.6.0 + dev: false + + /stream-to-pull-stream@1.7.3: + resolution: {integrity: sha512-6sNyqJpr5dIOQdgNy/xcDWwDuzAsAwVzhzrWlAPAQ7Lkjx/rv0wgvxEyKwTq6FmNd5rjTrELt/CLmaSw7crMGg==} + dependencies: + looper: 3.0.0 + pull-stream: 3.7.0 + dev: false + + /stream-transform@2.1.3: + resolution: {integrity: sha512-9GHUiM5hMiCi6Y03jD2ARC1ettBXkQBoQAe7nJsPknnI0ow10aXjTnew8QtYQmLjzn974BnmWEAJgCY6ZP1DeQ==} + dependencies: + mixme: 0.5.5 + dev: true + + /strict-uri-encode@1.1.0: + resolution: {integrity: sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==} + engines: {node: '>=0.10.0'} + + /strict-uri-encode@2.0.0: + resolution: {integrity: sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==} + engines: {node: '>=4'} + dev: false + + /string-argv@0.3.1: + resolution: {integrity: sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==} + engines: {node: '>=0.6.19'} + dev: true + + /string-width@1.0.2: + resolution: {integrity: sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==} + engines: {node: '>=0.10.0'} + dependencies: + code-point-at: 1.1.0 + is-fullwidth-code-point: 1.0.0 + strip-ansi: 3.0.1 + dev: false + optional: true + + /string-width@2.1.1: + resolution: {integrity: sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==} + engines: {node: '>=4'} + dependencies: + is-fullwidth-code-point: 2.0.0 + strip-ansi: 4.0.0 + dev: false + optional: true + + /string-width@3.1.0: + resolution: {integrity: sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==} + engines: {node: '>=6'} + dependencies: + emoji-regex: 7.0.3 + is-fullwidth-code-point: 2.0.0 + strip-ansi: 5.2.0 + dev: false + + /string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + dev: true + + /string.prototype.matchall@4.0.8: + resolution: {integrity: sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.21.1 + get-intrinsic: 1.2.0 + has-symbols: 1.0.3 + internal-slot: 1.0.4 + regexp.prototype.flags: 1.4.3 + side-channel: 1.0.4 + dev: true + + /string.prototype.trim@1.2.7: + resolution: {integrity: sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.21.1 + dev: false + + /string.prototype.trimend@1.0.6: + resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.21.1 + + /string.prototype.trimstart@1.0.6: + resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.21.1 + + /string_decoder@0.10.31: + resolution: {integrity: sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==} + dev: false + + /string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + dependencies: + safe-buffer: 5.1.2 + dev: false + + /string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + dependencies: + safe-buffer: 5.2.1 + + /strip-ansi@3.0.1: + resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==} + engines: {node: '>=0.10.0'} + dependencies: + ansi-regex: 2.1.1 + dev: false + + /strip-ansi@4.0.0: + resolution: {integrity: sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==} + engines: {node: '>=4'} + dependencies: + ansi-regex: 3.0.1 + dev: false + optional: true + + /strip-ansi@5.2.0: + resolution: {integrity: sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==} + engines: {node: '>=6'} + dependencies: + ansi-regex: 4.1.1 + dev: false + + /strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + dependencies: + ansi-regex: 5.0.1 + + /strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + dev: true + + /strip-hex-prefix@1.0.0: + resolution: {integrity: sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==} + engines: {node: '>=6.5.0', npm: '>=3'} + dependencies: + is-hex-prefixed: 1.0.0 + + /strip-indent@3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} + dependencies: + min-indent: 1.0.1 + dev: true + + /strip-json-comments@2.0.1: + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} + engines: {node: '>=0.10.0'} + dev: false + optional: true + + /strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + + /style-search@0.1.0: + resolution: {integrity: sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==} + dev: true + + /stylelint-config-css-modules@4.2.0(stylelint@14.16.1): + resolution: {integrity: sha512-5x7lzPNCc42puQEAFdr7dSzQ00aIg1vCVyV+QPUiSp2oZILpAt8HTgveXaDttazxcwWPBNJrxrLpa556xUP7Bw==} + peerDependencies: + stylelint: ^14.5.1 || ^15.0.0 + dependencies: + stylelint: 14.16.1 + optionalDependencies: + stylelint-scss: 4.4.0(stylelint@14.16.1) + dev: true + + /stylelint-config-prettier@9.0.5(stylelint@14.16.1): + resolution: {integrity: sha512-U44lELgLZhbAD/xy/vncZ2Pq8sh2TnpiPvo38Ifg9+zeioR+LAkHu0i6YORIOxFafZoVg0xqQwex6e6F25S5XA==} + engines: {node: '>= 12'} + hasBin: true + peerDependencies: + stylelint: '>= 11.x < 15' + dependencies: + stylelint: 14.16.1 + dev: true + + /stylelint-config-recommended-scss@5.0.2(postcss@8.4.21)(stylelint@14.16.1): + resolution: {integrity: sha512-b14BSZjcwW0hqbzm9b0S/ScN2+3CO3O4vcMNOw2KGf8lfVSwJ4p5TbNEXKwKl1+0FMtgRXZj6DqVUe/7nGnuBg==} + peerDependencies: + stylelint: ^14.0.0 + dependencies: + postcss-scss: 4.0.6(postcss@8.4.21) + stylelint: 14.16.1 + stylelint-config-recommended: 6.0.0(stylelint@14.16.1) + stylelint-scss: 4.4.0(stylelint@14.16.1) + transitivePeerDependencies: + - postcss + dev: true + + /stylelint-config-recommended@6.0.0(stylelint@14.16.1): + resolution: {integrity: sha512-ZorSSdyMcxWpROYUvLEMm0vSZud2uB7tX1hzBZwvVY9SV/uly4AvvJPPhCcymZL3fcQhEQG5AELmrxWqtmzacw==} + peerDependencies: + stylelint: ^14.0.0 + dependencies: + stylelint: 14.16.1 + dev: true + + /stylelint-config-standard-scss@3.0.0(postcss@8.4.21)(stylelint@14.16.1): + resolution: {integrity: sha512-zt3ZbzIbllN1iCmc94e4pDxqpkzeR6CJo5DDXzltshuXr+82B8ylHyMMARNnUYrZH80B7wgY7UkKTYCFM0UUyw==} + peerDependencies: + stylelint: ^14.0.0 + dependencies: + stylelint: 14.16.1 + stylelint-config-recommended-scss: 5.0.2(postcss@8.4.21)(stylelint@14.16.1) + stylelint-config-standard: 24.0.0(stylelint@14.16.1) + transitivePeerDependencies: + - postcss + dev: true + + /stylelint-config-standard@24.0.0(stylelint@14.16.1): + resolution: {integrity: sha512-+RtU7fbNT+VlNbdXJvnjc3USNPZRiRVp/d2DxOF/vBDDTi0kH5RX2Ny6errdtZJH3boO+bmqIYEllEmok4jiuw==} + peerDependencies: + stylelint: ^14.0.0 + dependencies: + stylelint: 14.16.1 + stylelint-config-recommended: 6.0.0(stylelint@14.16.1) + dev: true + + /stylelint-prettier@2.0.0(prettier@2.8.4)(stylelint@14.16.1): + resolution: {integrity: sha512-jvT3G+9lopkeB0ARmDPszyfaOnvnIF+30QCjZxyt7E6fynI1T9mOKgYDNb9bXX17M7PXMZaX3j/26wqakjp1tw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + prettier: '>=2.0.0' + stylelint: '>=14.0.0' + dependencies: + prettier: 2.8.4 + prettier-linter-helpers: 1.0.0 + stylelint: 14.16.1 + dev: true + + /stylelint-scss@4.4.0(stylelint@14.16.1): + resolution: {integrity: sha512-Qy66a+/30aylFhPmUArHhVsHOun1qrO93LGT15uzLuLjWS7hKDfpFm34mYo1ndR4MCo8W4bEZM1+AlJRJORaaw==} + peerDependencies: + stylelint: ^14.5.1 || ^15.0.0 + dependencies: + lodash: 4.17.21 + postcss-media-query-parser: 0.2.3 + postcss-resolve-nested-selector: 0.1.1 + postcss-selector-parser: 6.0.11 + postcss-value-parser: 4.2.0 + stylelint: 14.16.1 + dev: true + + /stylelint@14.16.1: + resolution: {integrity: sha512-ErlzR/T3hhbV+a925/gbfc3f3Fep9/bnspMiJPorfGEmcBbXdS+oo6LrVtoUZ/w9fqD6o6k7PtUlCOsCRdjX/A==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + dependencies: + '@csstools/selector-specificity': 2.1.1(postcss-selector-parser@6.0.11)(postcss@8.4.21) + balanced-match: 2.0.0 + colord: 2.9.3 + cosmiconfig: 7.1.0 + css-functions-list: 3.1.0 + debug: 4.3.4 + fast-glob: 3.2.12 + fastest-levenshtein: 1.0.16 + file-entry-cache: 6.0.1 + global-modules: 2.0.0 + globby: 11.1.0 + globjoin: 0.1.4 + html-tags: 3.2.0 + ignore: 5.2.4 + import-lazy: 4.0.0 + imurmurhash: 0.1.4 + is-plain-object: 5.0.0 + known-css-properties: 0.26.0 + mathml-tag-names: 2.1.3 + meow: 9.0.0 + micromatch: 4.0.5 + normalize-path: 3.0.0 + picocolors: 1.0.0 + postcss: 8.4.21 + postcss-media-query-parser: 0.2.3 + postcss-resolve-nested-selector: 0.1.1 + postcss-safe-parser: 6.0.0(postcss@8.4.21) + postcss-selector-parser: 6.0.11 + postcss-value-parser: 4.2.0 + resolve-from: 5.0.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + style-search: 0.1.0 + supports-hyperlinks: 2.3.0 + svg-tags: 1.0.0 + table: 6.8.1 + v8-compile-cache: 2.3.0 + write-file-atomic: 4.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /stylis@4.1.3: + resolution: {integrity: sha512-GP6WDNWf+o403jrEp9c5jibKavrtLW+/qYGhFxFrG8maXhwTBI7gLLhiBb0o7uFccWN+EOS9aMO6cGHWAO07OA==} + + /superjson@1.12.2: + resolution: {integrity: sha512-ugvUo9/WmvWOjstornQhsN/sR9mnGtWGYeTxFuqLb4AiT4QdUavjGFRALCPKWWnAiUJ4HTpytj5e0t5HoMRkXg==} + engines: {node: '>=10'} + dependencies: + copy-anything: 3.0.3 + dev: false + + /supports-color@2.0.0: + resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==} + engines: {node: '>=0.8.0'} + dev: false + + /supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + dependencies: + has-flag: 3.0.0 + + /supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 + + /supports-hyperlinks@2.3.0: + resolution: {integrity: sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==} + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 + supports-color: 7.2.0 + dev: true + + /supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + /svg-parser@2.0.4: + resolution: {integrity: sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==} + dev: true + + /svg-tags@1.0.0: + resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==} + dev: true + + /swarm-js@0.1.42: + resolution: {integrity: sha512-BV7c/dVlA3R6ya1lMlSSNPLYrntt0LUq4YMgy3iwpCIc6rZnS5W2wUoctarZ5pXlpKtxDDf9hNziEkcfrxdhqQ==} + dependencies: + bluebird: 3.7.2 + buffer: 5.7.1 + eth-lib: 0.1.29 + fs-extra: 4.0.3 + got: 11.8.6 + mime-types: 2.1.35 + mkdirp-promise: 5.0.1 + mock-fs: 4.14.0 + setimmediate: 1.0.5 + tar: 4.4.19 + xhr-request: 1.1.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + /synckit@0.8.5: + resolution: {integrity: sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==} + engines: {node: ^14.18.0 || >=16.0.0} + dependencies: + '@pkgr/utils': 2.3.1 + tslib: 2.5.0 + dev: true + + /table@6.8.1: + resolution: {integrity: sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==} + engines: {node: '>=10.0.0'} + dependencies: + ajv: 8.12.0 + lodash.truncate: 4.4.2 + slice-ansi: 4.0.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: true + + /tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} + dev: true + + /tape@4.16.2: + resolution: {integrity: sha512-TUChV+q0GxBBCEbfCYkGLkv8hDJYjMdSWdE0/Lr331sB389dsvFUHNV9ph5iQqKzt8Ss9drzcda/YeexclBFqg==} + hasBin: true + dependencies: + call-bind: 1.0.2 + deep-equal: 1.1.1 + defined: 1.0.1 + dotignore: 0.1.2 + for-each: 0.3.3 + glob: 7.2.3 + has: 1.0.3 + inherits: 2.0.4 + is-regex: 1.1.4 + minimist: 1.2.7 + object-inspect: 1.12.3 + resolve: 1.22.1 + resumer: 0.0.0 + string.prototype.trim: 1.2.7 + through: 2.3.8 + dev: false + + /tar-fs@2.1.1: + resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==} + dependencies: + chownr: 1.1.4 + mkdirp-classic: 0.5.3 + pump: 3.0.0 + tar-stream: 2.2.0 + dev: false + optional: true + + /tar-stream@2.2.0: + resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} + engines: {node: '>=6'} + dependencies: + bl: 4.1.0 + end-of-stream: 1.4.4 + fs-constants: 1.0.0 + inherits: 2.0.4 + readable-stream: 3.6.0 + dev: false + optional: true + + /tar@4.4.19: + resolution: {integrity: sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==} + engines: {node: '>=4.5'} + dependencies: + chownr: 1.1.4 + fs-minipass: 1.2.7 + minipass: 2.9.0 + minizlib: 1.3.3 + mkdirp: 0.5.6 + safe-buffer: 5.2.1 + yallist: 3.1.1 + + /term-size@2.2.1: + resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} + engines: {node: '>=8'} + dev: true + + /text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + + /through2@2.0.5: + resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} + dependencies: + readable-stream: 2.3.8 + xtend: 4.0.2 + dev: false + + /through@2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + dev: false + + /timed-out@4.0.1: + resolution: {integrity: sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==} + engines: {node: '>=0.10.0'} + + /tiny-each-async@2.0.3: + resolution: {integrity: sha512-5ROII7nElnAirvFn8g7H7MtpfV1daMcyfTGQwsn/x2VtyV+VPiO5CjReCJtWLvoKTDEDmZocf3cNPraiMnBXLA==} + dev: true + + /tiny-glob@0.2.9: + resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==} + dependencies: + globalyzer: 0.1.0 + globrex: 0.1.2 + dev: true + + /tiny-invariant@1.3.1: + resolution: {integrity: sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==} + dev: false + + /tiny-warning@1.0.3: + resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==} + + /tmp@0.0.33: + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} + engines: {node: '>=0.6.0'} + dependencies: + os-tmpdir: 1.0.2 + + /tmp@0.1.0: + resolution: {integrity: sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==} + engines: {node: '>=6'} + dependencies: + rimraf: 2.7.1 + dev: false + + /to-fast-properties@1.0.3: + resolution: {integrity: sha512-lxrWP8ejsq+7E3nNjwYmUBMAgjMTZoTI+sdBOpvNyijeDLa29LUn9QaoXAHv4+Z578hbmHHJKZknzxVtvo77og==} + engines: {node: '>=0.10.0'} + dev: false + + /to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + + /to-object-path@0.3.0: + resolution: {integrity: sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 3.2.2 + + /to-readable-stream@1.0.0: + resolution: {integrity: sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==} + engines: {node: '>=6'} + dev: false + optional: true + + /to-regex-range@2.1.1: + resolution: {integrity: sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==} + engines: {node: '>=0.10.0'} + dependencies: + is-number: 3.0.0 + repeat-string: 1.6.1 + + /to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + dependencies: + is-number: 7.0.0 + + /to-regex@3.0.2: + resolution: {integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==} + engines: {node: '>=0.10.0'} + dependencies: + define-property: 2.0.2 + extend-shallow: 3.0.2 + regex-not: 1.0.2 + safe-regex: 1.1.0 + + /toggle-selection@1.0.6: + resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==} + dev: false + + /toidentifier@1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + + /tough-cookie@2.5.0: + resolution: {integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==} + engines: {node: '>=0.8'} + dependencies: + psl: 1.9.0 + punycode: 2.3.0 + + /tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + + /trim-newlines@3.0.1: + resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} + engines: {node: '>=8'} + dev: true + + /trim-right@1.0.1: + resolution: {integrity: sha512-WZGXGstmCWgeevgTL54hrCuw1dyMQIzWy7ZfqRJfSmJZBwklI15egmQytFP6bPidmw3M8d5yEowl1niq4vmqZw==} + engines: {node: '>=0.10.0'} + dev: false + + /ts-custom-error@3.3.1: + resolution: {integrity: sha512-5OX1tzOjxWEgsr/YEUWSuPrQ00deKLh6D7OTWcvNHm12/7QPyRh8SYpyWvA4IZv8H/+GQWQEh/kwo95Q9OVW1A==} + engines: {node: '>=14.0.0'} + + /ts-morph@17.0.1: + resolution: {integrity: sha512-10PkHyXmrtsTvZSL+cqtJLTgFXkU43Gd0JCc0Rw6GchWbqKe0Rwgt1v3ouobTZwQzF1mGhDeAlWYBMGRV7y+3g==} + dependencies: + '@ts-morph/common': 0.18.1 + code-block-writer: 11.0.3 + dev: true + + /ts-morph@18.0.0: + resolution: {integrity: sha512-Kg5u0mk19PIIe4islUI/HWRvm9bC1lHejK4S0oh1zaZ77TMZAEmQC0sHQYiu2RgCQFZKXz1fMVi/7nOOeirznA==} + dependencies: + '@ts-morph/common': 0.19.0 + code-block-writer: 12.0.0 + dev: true + + /tsconfig-paths@3.14.1: + resolution: {integrity: sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==} + dependencies: + '@types/json5': 0.0.29 + json5: 1.0.2 + minimist: 1.2.7 + strip-bom: 3.0.0 + dev: true + + /tslib@1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + + /tslib@2.5.0: + resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==} + + /tsutils@3.21.0(typescript@4.9.5): + resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} + engines: {node: '>= 6'} + peerDependencies: + typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' + dependencies: + tslib: 1.14.1 + typescript: 4.9.5 + + /tty-table@4.1.6: + resolution: {integrity: sha512-kRj5CBzOrakV4VRRY5kUWbNYvo/FpOsz65DzI5op9P+cHov3+IqPbo1JE1ZnQGkHdZgNFDsrEjrfqqy/Ply9fw==} + engines: {node: '>=8.0.0'} + hasBin: true + dependencies: + chalk: 4.1.2 + csv: 5.5.3 + kleur: 4.1.5 + smartwrap: 2.0.2 + strip-ansi: 6.0.1 + wcwidth: 1.0.1 + yargs: 17.6.2 + dev: true + + /tunnel-agent@0.6.0: + resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} + dependencies: + safe-buffer: 5.2.1 + + /turbo-darwin-64@1.9.3: + resolution: {integrity: sha512-0dFc2cWXl82kRE4Z+QqPHhbEFEpUZho1msHXHWbz5+PqLxn8FY0lEVOHkq5tgKNNEd5KnGyj33gC/bHhpZOk5g==} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /turbo-darwin-arm64@1.9.3: + resolution: {integrity: sha512-1cYbjqLBA2zYE1nbf/qVnEkrHa4PkJJbLo7hnuMuGM0bPzh4+AnTNe98gELhqI1mkTWBu/XAEeF5u6dgz0jLNA==} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /turbo-linux-64@1.9.3: + resolution: {integrity: sha512-UuBPFefawEwpuxh5pM9Jqq3q4C8M0vYxVYlB3qea/nHQ80pxYq7ZcaLGEpb10SGnr3oMUUs1zZvkXWDNKCJb8Q==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /turbo-linux-arm64@1.9.3: + resolution: {integrity: sha512-vUrNGa3hyDtRh9W0MkO+l1dzP8Co2gKnOVmlJQW0hdpOlWlIh22nHNGGlICg+xFa2f9j4PbQlWTsc22c019s8Q==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /turbo-windows-64@1.9.3: + resolution: {integrity: sha512-0BZ7YaHs6r+K4ksqWus1GKK3W45DuDqlmfjm/yuUbTEVc8szmMCs12vugU2Zi5GdrdJSYfoKfEJ/PeegSLIQGQ==} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /turbo-windows-arm64@1.9.3: + resolution: {integrity: sha512-QJUYLSsxdXOsR1TquiOmLdAgtYcQ/RuSRpScGvnZb1hY0oLc7JWU0llkYB81wVtWs469y8H9O0cxbKwCZGR4RQ==} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /turbo@1.9.3: + resolution: {integrity: sha512-ID7mxmaLUPKG/hVkp+h0VuucB1U99RPCJD9cEuSEOdIPoSIuomcIClEJtKamUsdPLhLCud+BvapBNnhgh58Nzw==} + hasBin: true + requiresBuild: true + optionalDependencies: + turbo-darwin-64: 1.9.3 + turbo-darwin-arm64: 1.9.3 + turbo-linux-64: 1.9.3 + turbo-linux-arm64: 1.9.3 + turbo-windows-64: 1.9.3 + turbo-windows-arm64: 1.9.3 + dev: true + + /tweetnacl-util@0.15.1: + resolution: {integrity: sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==} + dev: false + + /tweetnacl@0.14.5: + resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==} + + /tweetnacl@1.0.3: + resolution: {integrity: sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==} + dev: false + + /type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + + /type-fest@0.13.1: + resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} + engines: {node: '>=10'} + dev: true + + /type-fest@0.18.1: + resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==} + engines: {node: '>=10'} + dev: true + + /type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + + /type-fest@0.6.0: + resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} + engines: {node: '>=8'} + dev: true + + /type-fest@0.8.1: + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} + engines: {node: '>=8'} + dev: true + + /type-fest@3.6.1: + resolution: {integrity: sha512-htXWckxlT6U4+ilVgweNliPqlsVSSucbxVexRYllyMVJDtf5rTjv6kF/s+qAd4QSL1BZcnJPEJavYBPQiWuZDA==} + engines: {node: '>=14.16'} + dev: true + + /type-is@1.6.18: + resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} + engines: {node: '>= 0.6'} + dependencies: + media-typer: 0.3.0 + mime-types: 2.1.35 + + /type@1.2.0: + resolution: {integrity: sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==} + + /type@2.7.2: + resolution: {integrity: sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==} + + /typed-array-length@1.0.4: + resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} + dependencies: + call-bind: 1.0.2 + for-each: 0.3.3 + is-typed-array: 1.1.10 + + /typedarray-to-buffer@3.1.5: + resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} + dependencies: + is-typedarray: 1.0.0 + + /typedarray@0.0.6: + resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} + dev: false + + /typedoc-plugin-markdown@3.14.0(typedoc@0.23.25): + resolution: {integrity: sha512-UyQLkLRkfTFhLdhSf3RRpA3nNInGn+k6sll2vRXjflaMNwQAAiB61SYbisNZTg16t4K1dt1bPQMMGLrxS0GZ0Q==} + peerDependencies: + typedoc: '>=0.23.0' + dependencies: + handlebars: 4.7.7 + typedoc: 0.23.25(typescript@4.9.5) + dev: true + + /typedoc@0.23.25(typescript@4.9.5): + resolution: {integrity: sha512-O1he153qVyoCgJYSvIyY3bPP1wAJTegZfa6tL3APinSZhJOf8CSd8F/21M6ex8pUY/fuY6n0jAsT4fIuMGA6sA==} + engines: {node: '>= 14.14'} + hasBin: true + peerDependencies: + typescript: 4.6.x || 4.7.x || 4.8.x || 4.9.x + dependencies: + lunr: 2.3.9 + marked: 4.2.12 + minimatch: 6.1.6 + shiki: 0.14.1 + typescript: 4.9.5 + dev: true + + /typescript@4.8.4: + resolution: {integrity: sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==} + engines: {node: '>=4.2.0'} + hasBin: true + dev: true + + /typescript@4.9.5: + resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} + engines: {node: '>=4.2.0'} + hasBin: true + + /typewise-core@1.2.0: + resolution: {integrity: sha512-2SCC/WLzj2SbUwzFOzqMCkz5amXLlxtJqDKTICqg30x+2DZxcfZN2MvQZmGfXWKNWaKK9pBPsvkcwv8bF/gxKg==} + dev: false + + /typewise@1.0.3: + resolution: {integrity: sha512-aXofE06xGhaQSPzt8hlTY+/YWQhm9P0jYUp1f2XtmW/3Bk0qzXcyFWAtPoo2uTGQj1ZwbDuSyuxicq+aDo8lCQ==} + dependencies: + typewise-core: 1.2.0 + dev: false + + /typewiselite@1.0.0: + resolution: {integrity: sha512-J9alhjVHupW3Wfz6qFRGgQw0N3gr8hOkw6zm7FZ6UR1Cse/oD9/JVok7DNE9TT9IbciDHX2Ex9+ksE6cRmtymw==} + dev: false + + /u2f-api@0.2.7: + resolution: {integrity: sha512-fqLNg8vpvLOD5J/z4B6wpPg4Lvowz1nJ9xdHcCzdUPKcFE/qNCceV2gNZxSJd5vhAZemHr/K/hbzVA0zxB5mkg==} + dev: false + + /ua-parser-js@1.0.35: + resolution: {integrity: sha512-fKnGuqmTBnIE+/KXSzCn4db8RTigUzw1AN0DmdU6hJovUTbYJKyqj+8Mt1c4VfRDnOVJnENmfYkIPZ946UrSAA==} + dev: false + + /uglify-js@3.17.4: + resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==} + engines: {node: '>=0.8.0'} + hasBin: true + requiresBuild: true + dev: true + optional: true + + /ultron@1.1.1: + resolution: {integrity: sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==} + + /unbox-primitive@1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + dependencies: + call-bind: 1.0.2 + has-bigints: 1.0.2 + has-symbols: 1.0.3 + which-boxed-primitive: 1.0.2 + + /underscore@1.9.1: + resolution: {integrity: sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==} + dev: false + optional: true + + /union-value@1.0.1: + resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==} + engines: {node: '>=0.10.0'} + dependencies: + arr-union: 3.1.0 + get-value: 2.0.6 + is-extendable: 0.1.1 + set-value: 2.0.1 + + /universalify@0.1.2: + resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} + engines: {node: '>= 4.0.0'} + + /universalify@2.0.0: + resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} + engines: {node: '>= 10.0.0'} + dev: true + + /unorm@1.6.0: + resolution: {integrity: sha512-b2/KCUlYZUeA7JFUuRJZPUtr4gZvBh7tavtv4fvk4+KV9pfGiR6CQAQAWl49ZpR3ts2dk4FYkP7EIgDJoiOLDA==} + engines: {node: '>= 0.4.0'} + dev: false + + /unpipe@1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} + + /unset-value@1.0.0: + resolution: {integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==} + engines: {node: '>=0.10.0'} + dependencies: + has-value: 0.3.1 + isobject: 3.0.1 + + /update-browserslist-db@1.0.10(browserslist@4.21.5): + resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.21.5 + escalade: 3.1.1 + picocolors: 1.0.0 + + /uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + dependencies: + punycode: 2.3.0 + + /urix@0.1.0: + resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==} + deprecated: Please see https://github.com/lydell/urix#deprecated + + /url-join@4.0.1: + resolution: {integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==} + + /url-parse-lax@3.0.0: + resolution: {integrity: sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==} + engines: {node: '>=4'} + dependencies: + prepend-http: 2.0.0 + dev: false + optional: true + + /url-set-query@1.0.0: + resolution: {integrity: sha512-3AChu4NiXquPfeckE5R5cGdiHCMWJx1dwCWOmWIL4KHAziJNOFIYJlpGFeKDvwLPHovZRCxK3cYlwzqI9Vp+Gg==} + + /usb@1.9.2: + resolution: {integrity: sha512-dryNz030LWBPAf6gj8vyq0Iev3vPbCLHCT8dBw3gQRXRzVNsIdeuU+VjPp3ksmSPkeMAl1k+kQ14Ij0QHyeiAg==} + engines: {node: '>=10.16.0'} + dependencies: + node-addon-api: 4.3.0 + node-gyp-build: 4.6.0 + dev: false + optional: true + + /use-breakpoint@3.0.7(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-9jAE9fY6N+PYhAMrzJ7BjYmGB1aXuizv3LiZvMPIpQKuaimc1uYAvEmpXLwmxhRujb/4uMFjj/pNso9pAGt1XQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + dependencies: + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /use-deep-compare-effect@1.8.1(react@18.2.0): + resolution: {integrity: sha512-kbeNVZ9Zkc0RFGpfMN3MNfaKNvcLNyxOAAd9O4CBZ+kCBXXscn9s/4I+8ytUER4RDpEYs5+O6Rs4PqiZ+rHr5Q==} + engines: {node: '>=10', npm: '>=6'} + peerDependencies: + react: '>=16.13' + dependencies: + '@babel/runtime': 7.20.13 + dequal: 2.0.3 + react: 18.2.0 + dev: false + + /use-sync-external-store@1.2.0(react@18.2.0): + resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + react: 18.2.0 + dev: false + + /use-wallet@0.13.6(@babel/core@7.20.12)(@babel/runtime@7.21.5)(eslint@8.34.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5): + resolution: {integrity: sha512-GBypStD/y4tqUtWuDG2qhAr8XoTqMzoUybFQmHYOireeprmjqXPKFimhW7OpOZqt1hB21FmDYoGyFUgrbOzpeQ==} + peerDependencies: + react: ^16.13.1 || ^17 + react-dom: ^16.13.1 || ^17 + dependencies: + '@aragon/provided-connector': 6.0.8 + '@typescript-eslint/parser': 4.33.0(eslint@8.34.0)(typescript@4.9.5) + '@web3-react/core': 6.1.9(react@18.2.0) + '@web3-react/fortmatic-connector': 6.1.6 + '@web3-react/frame-connector': 6.0.9 + '@web3-react/injected-connector': 6.0.7 + '@web3-react/ledger-connector': 6.1.9 + '@web3-react/portis-connector': 6.1.6(@babel/core@7.20.12) + '@web3-react/torus-connector': 6.1.7(@babel/runtime@7.21.5) + '@web3-react/walletconnect-connector': 6.2.4(@babel/core@7.20.12) + '@web3-react/walletlink-connector': 6.2.5(@babel/core@7.20.12) + jsbi: 3.2.5 + prop-types: 15.8.1 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + regenerator-runtime: 0.13.11 + rollup-plugin-image-files: 1.4.2 + transitivePeerDependencies: + - '@babel/core' + - '@babel/runtime' + - '@sentry/types' + - bufferutil + - encoding + - eslint + - supports-color + - typescript + - utf-8-validate + dev: false + + /use@3.1.1: + resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==} + engines: {node: '>=0.10.0'} + + /utf-8-validate@5.0.10: + resolution: {integrity: sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==} + engines: {node: '>=6.14.2'} + requiresBuild: true + dependencies: + node-gyp-build: 4.6.0 + + /utf8@3.0.0: + resolution: {integrity: sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==} + + /util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + /util.promisify@1.1.1: + resolution: {integrity: sha512-/s3UsZUrIfa6xDhr7zZhnE9SLQ5RIXyYfiVnMMyMDzOc8WhWN4Nbh36H842OyurKbCDAesZOJaVyvmSl6fhGQw==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + for-each: 0.3.3 + has-symbols: 1.0.3 + object.getownpropertydescriptors: 2.1.5 + dev: false + + /util@0.12.5: + resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==} + dependencies: + inherits: 2.0.4 + is-arguments: 1.1.1 + is-generator-function: 1.0.10 + is-typed-array: 1.1.10 + which-typed-array: 1.1.9 + + /utils-merge@1.0.1: + resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} + engines: {node: '>= 0.4.0'} + + /uuid@2.0.1: + resolution: {integrity: sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg==} + deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. + dev: false + + /uuid@3.3.2: + resolution: {integrity: sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==} + deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. + hasBin: true + dev: false + + /uuid@3.4.0: + resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==} + deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. + hasBin: true + + /uuid@8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + hasBin: true + dev: false + + /uuid@9.0.0: + resolution: {integrity: sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==} + hasBin: true + + /v8-compile-cache@2.3.0: + resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==} + dev: true + + /valid-url@1.0.9: + resolution: {integrity: sha512-QQDsV8OnSf5Uc30CKSwG9lnhMPe6exHtTXLRYX8uMwKENy640pU+2BgBL0LRbDh/eYRahNCS7aewCx0wf3NYVA==} + dev: false + + /validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + dependencies: + spdx-correct: 3.1.1 + spdx-expression-parse: 3.0.1 + dev: true + + /validator@13.9.0: + resolution: {integrity: sha512-B+dGG8U3fdtM0/aNK4/X8CXq/EcxU2WPrPEkJGslb47qyHsxmbggTWK0yEA4qnYVNF+nxNlN88o14hIcPmSIEA==} + engines: {node: '>= 0.10'} + dev: true + + /varint@5.0.2: + resolution: {integrity: sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==} + + /vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} + + /verror@1.10.0: + resolution: {integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==} + engines: {'0': node >=0.6.0} + dependencies: + assert-plus: 1.0.0 + core-util-is: 1.0.2 + extsprintf: 1.3.0 + + /vite-plugin-dts@1.7.3(vite@4.1.2): + resolution: {integrity: sha512-u3t45p6fTbzUPMkwYe0ESwuUeiRMlwdPfD3dRyDKUwLe2WmEYcFyVp2o9/ke2EMrM51lQcmNWdV9eLcgjD1/ng==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: '>=2.9.0' + dependencies: + '@microsoft/api-extractor': 7.34.4 + '@rollup/pluginutils': 5.0.2 + '@rushstack/node-core-library': 3.55.2 + debug: 4.3.4 + fast-glob: 3.2.12 + fs-extra: 10.1.0 + kolorist: 1.7.0 + ts-morph: 17.0.1 + vite: 4.1.2(sass@1.58.3) + transitivePeerDependencies: + - '@types/node' + - rollup + - supports-color + dev: true + + /vite-plugin-dts@2.0.1(@types/node@18.13.0)(vite@4.1.2): + resolution: {integrity: sha512-XtUuQrHPrvQa0S8gekY4Cpu0xjNOb5EVsLaC5Zqt8INB4SZ5cVvK7E8aZNl6S4HUzEk3PY/WVtlkyaJAgXHkYg==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: '>=2.9.0' + dependencies: + '@babel/parser': 7.21.4 + '@microsoft/api-extractor': 7.34.4(@types/node@18.13.0) + '@rollup/pluginutils': 5.0.2 + '@rushstack/node-core-library': 3.55.2(@types/node@18.13.0) + debug: 4.3.4 + fast-glob: 3.2.12 + fs-extra: 10.1.0 + kolorist: 1.7.0 + magic-string: 0.29.0 + ts-morph: 17.0.1 + vite: 4.1.2(@types/node@18.13.0) + transitivePeerDependencies: + - '@types/node' + - rollup + - supports-color + dev: true + + /vite-plugin-dts@2.0.1(vite@4.1.2): + resolution: {integrity: sha512-XtUuQrHPrvQa0S8gekY4Cpu0xjNOb5EVsLaC5Zqt8INB4SZ5cVvK7E8aZNl6S4HUzEk3PY/WVtlkyaJAgXHkYg==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: '>=2.9.0' + dependencies: + '@babel/parser': 7.21.4 + '@microsoft/api-extractor': 7.34.4 + '@rollup/pluginutils': 5.0.2 + '@rushstack/node-core-library': 3.55.2 + debug: 4.3.4 + fast-glob: 3.2.12 + fs-extra: 10.1.0 + kolorist: 1.7.0 + magic-string: 0.29.0 + ts-morph: 17.0.1 + vite: 4.1.2 + transitivePeerDependencies: + - '@types/node' + - rollup + - supports-color + dev: true + + /vite-plugin-dts@2.3.0(@types/node@18.15.3)(vite@4.1.2): + resolution: {integrity: sha512-WbJgGtsStgQhdm3EosYmIdTGbag5YQpZ3HXWUAPCDyoXI5qN6EY0V7NXq0lAmnv9hVQsvh0htbYcg0Or5Db9JQ==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: '>=2.9.0' + dependencies: + '@babel/parser': 7.21.4 + '@microsoft/api-extractor': 7.34.4(@types/node@18.15.3) + '@rollup/pluginutils': 5.0.2 + '@rushstack/node-core-library': 3.55.2(@types/node@18.15.3) + debug: 4.3.4 + fast-glob: 3.2.12 + fs-extra: 10.1.0 + kolorist: 1.7.0 + magic-string: 0.29.0 + ts-morph: 18.0.0 + vite: 4.1.2(@types/node@18.15.3) + transitivePeerDependencies: + - '@types/node' + - rollup + - supports-color + dev: true + + /vite-plugin-dynamic-import@1.2.7: + resolution: {integrity: sha512-n1fjBaYF8ByqORv7hpEaZQiQie8sNiWGU61DpYs+fgToGmzGIgThUI8BCnW3RICVK4gJC2sDNn7NK1RzTvRyEA==} + dependencies: + fast-glob: 3.2.12 + dev: true + + /vite-plugin-html-env@1.2.7(vite@4.1.2): + resolution: {integrity: sha512-vdTnKtuBeB8Zp93DCbN0Qjf4odW2msVRq45r7lGKA6nwQGJFj6YemU54u3xPPkvDeZhG8DEEU64xbLwzVEBilQ==} + engines: {node: '>=12.0.0'} + peerDependencies: + vite: '*' + dependencies: + vite: 4.1.2(sass@1.58.3) + dev: true + + /vite-plugin-svgr@2.4.0(vite@4.1.2): + resolution: {integrity: sha512-q+mJJol6ThvqkkJvvVFEndI4EaKIjSI0I3jNFgSoC9fXAz1M7kYTVUin8fhUsFojFDKZ9VHKtX6NXNaOLpbsHA==} + peerDependencies: + vite: ^2.6.0 || 3 || 4 + dependencies: + '@rollup/pluginutils': 5.0.2 + '@svgr/core': 6.5.1 + vite: 4.1.2(sass@1.58.3) + transitivePeerDependencies: + - rollup + - supports-color + dev: true + + /vite@4.1.2: + resolution: {integrity: sha512-MWDb9Rfy3DI8omDQySbMK93nQqStwbsQWejXRY2EBzEWKmLAXWb1mkI9Yw2IJrc+oCvPCI1Os5xSSIBYY6DEAw==} + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + '@types/node': '>= 14' + less: '*' + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + esbuild: 0.16.17 + postcss: 8.4.21 + resolve: 1.22.1 + rollup: 3.15.0 + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /vite@4.1.2(@types/node@18.13.0): + resolution: {integrity: sha512-MWDb9Rfy3DI8omDQySbMK93nQqStwbsQWejXRY2EBzEWKmLAXWb1mkI9Yw2IJrc+oCvPCI1Os5xSSIBYY6DEAw==} + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + '@types/node': '>= 14' + less: '*' + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + '@types/node': 18.13.0 + esbuild: 0.16.17 + postcss: 8.4.21 + resolve: 1.22.1 + rollup: 3.15.0 + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /vite@4.1.2(@types/node@18.15.3): + resolution: {integrity: sha512-MWDb9Rfy3DI8omDQySbMK93nQqStwbsQWejXRY2EBzEWKmLAXWb1mkI9Yw2IJrc+oCvPCI1Os5xSSIBYY6DEAw==} + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + '@types/node': '>= 14' + less: '*' + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + '@types/node': 18.15.3 + esbuild: 0.16.17 + postcss: 8.4.21 + resolve: 1.22.1 + rollup: 3.15.0 + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /vite@4.1.2(sass@1.58.3): + resolution: {integrity: sha512-MWDb9Rfy3DI8omDQySbMK93nQqStwbsQWejXRY2EBzEWKmLAXWb1mkI9Yw2IJrc+oCvPCI1Os5xSSIBYY6DEAw==} + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + '@types/node': '>= 14' + less: '*' + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + esbuild: 0.16.17 + postcss: 8.4.21 + resolve: 1.22.1 + rollup: 3.15.0 + sass: 1.58.3 + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /vlq@0.2.3: + resolution: {integrity: sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==} + dev: true + + /vscode-oniguruma@1.7.0: + resolution: {integrity: sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==} + dev: true + + /vscode-textmate@8.0.0: + resolution: {integrity: sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==} + dev: true + + /walletlink@2.5.0(@babel/core@7.20.12): + resolution: {integrity: sha512-PBJmK5tZmonwKPABBI2/optaZ11O4kKmkmnU5eLKhk4XRlal5qJ1igZ4U5j3w6w8wxxdhCWpLMHzGWt3n/p7mw==} + engines: {node: '>= 10.0.0'} + deprecated: 'WARNING: This project has been renamed to @coinbase/wallet-sdk. Install using @coinbase/wallet-sdk instead.' + dependencies: + '@metamask/safe-event-emitter': 2.0.0 + bind-decorator: 1.0.11 + bn.js: 5.2.1 + clsx: 1.2.1 + eth-block-tracker: 4.4.3(@babel/core@7.20.12) + eth-json-rpc-filters: 4.2.2 + eth-rpc-errors: 4.0.2 + js-sha256: 0.9.0 + json-rpc-engine: 6.1.0 + keccak: 3.0.3 + preact: 10.13.0 + rxjs: 6.6.7 + stream-browserify: 3.0.0 + transitivePeerDependencies: + - '@babel/core' + - encoding + - supports-color + dev: false + + /wcwidth@1.0.1: + resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + dependencies: + defaults: 1.0.4 + dev: true + + /web3-bzz@1.2.11: + resolution: {integrity: sha512-XGpWUEElGypBjeFyUhTkiPXFbDVD6Nr/S5jznE3t8cWUA0FxRf1n3n/NuIZeb0H9RkN2Ctd/jNma/k8XGa3YKg==} + engines: {node: '>=8.0.0'} + dependencies: + '@types/node': 12.20.55 + got: 9.6.0 + swarm-js: 0.1.42 + underscore: 1.9.1 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: false + optional: true + + /web3-bzz@1.8.2: + resolution: {integrity: sha512-1EEnxjPnFnvNWw3XeeKuTR8PBxYd0+XWzvaLK7OJC/Go9O8llLGxrxICbKV+8cgIE0sDRBxiYx02X+6OhoAQ9w==} + engines: {node: '>=8.0.0'} + requiresBuild: true + dependencies: + '@types/node': 12.20.55 + got: 12.1.0 + swarm-js: 0.1.42 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + /web3-core-helpers@1.2.11: + resolution: {integrity: sha512-PEPoAoZd5ME7UfbnCZBdzIerpe74GEvlwT4AjOmHeCVZoIFk7EqvOZDejJHt+feJA6kMVTdd0xzRNN295UhC1A==} + engines: {node: '>=8.0.0'} + dependencies: + underscore: 1.9.1 + web3-eth-iban: 1.2.11 + web3-utils: 1.2.11 + dev: false + optional: true + + /web3-core-helpers@1.8.2: + resolution: {integrity: sha512-6B1eLlq9JFrfealZBomd1fmlq1o4A09vrCVQSa51ANoib/jllT3atZrRDr0zt1rfI7TSZTZBXdN/aTdeN99DWw==} + engines: {node: '>=8.0.0'} + dependencies: + web3-eth-iban: 1.8.2 + web3-utils: 1.8.2 + + /web3-core-method@1.2.11: + resolution: {integrity: sha512-ff0q76Cde94HAxLDZ6DbdmKniYCQVtvuaYh+rtOUMB6kssa5FX0q3vPmixi7NPooFnbKmmZCM6NvXg4IreTPIw==} + engines: {node: '>=8.0.0'} + dependencies: + '@ethersproject/transactions': 5.7.0 + underscore: 1.9.1 + web3-core-helpers: 1.2.11 + web3-core-promievent: 1.2.11 + web3-core-subscriptions: 1.2.11 + web3-utils: 1.2.11 + dev: false + optional: true + + /web3-core-method@1.8.2: + resolution: {integrity: sha512-1qnr5mw5wVyULzLOrk4B+ryO3gfGjGd/fx8NR+J2xCGLf1e6OSjxT9vbfuQ3fErk/NjSTWWreieYWLMhaogcRA==} + engines: {node: '>=8.0.0'} + dependencies: + '@ethersproject/transactions': 5.7.0 + web3-core-helpers: 1.8.2 + web3-core-promievent: 1.8.2 + web3-core-subscriptions: 1.8.2 + web3-utils: 1.8.2 + + /web3-core-promievent@1.2.11: + resolution: {integrity: sha512-il4McoDa/Ox9Agh4kyfQ8Ak/9ABYpnF8poBLL33R/EnxLsJOGQG2nZhkJa3I067hocrPSjEdlPt/0bHXsln4qA==} + engines: {node: '>=8.0.0'} + dependencies: + eventemitter3: 4.0.4 + dev: false + optional: true + + /web3-core-promievent@1.8.2: + resolution: {integrity: sha512-nvkJWDVgoOSsolJldN33tKW6bKKRJX3MCPDYMwP5SUFOA/mCzDEoI88N0JFofDTXkh1k7gOqp1pvwi9heuaxGg==} + engines: {node: '>=8.0.0'} + dependencies: + eventemitter3: 4.0.4 + + /web3-core-requestmanager@1.2.11: + resolution: {integrity: sha512-oFhBtLfOiIbmfl6T6gYjjj9igOvtyxJ+fjS+byRxiwFJyJ5BQOz4/9/17gWR1Cq74paTlI7vDGxYfuvfE/mKvA==} + engines: {node: '>=8.0.0'} + dependencies: + underscore: 1.9.1 + web3-core-helpers: 1.2.11 + web3-providers-http: 1.2.11 + web3-providers-ipc: 1.2.11 + web3-providers-ws: 1.2.11 + transitivePeerDependencies: + - supports-color + dev: false + optional: true + + /web3-core-requestmanager@1.8.2: + resolution: {integrity: sha512-p1d090RYs5Mu7DK1yyc3GCBVZB/03rBtFhYFoS2EruGzOWs/5Q0grgtpwS/DScdRAm8wB8mYEBhY/RKJWF6B2g==} + engines: {node: '>=8.0.0'} + dependencies: + util: 0.12.5 + web3-core-helpers: 1.8.2 + web3-providers-http: 1.8.2 + web3-providers-ipc: 1.8.2 + web3-providers-ws: 1.8.2 + transitivePeerDependencies: + - encoding + - supports-color + + /web3-core-subscriptions@1.2.11: + resolution: {integrity: sha512-qEF/OVqkCvQ7MPs1JylIZCZkin0aKK9lDxpAtQ1F8niEDGFqn7DT8E/vzbIa0GsOjL2fZjDhWJsaW+BSoAW1gg==} + engines: {node: '>=8.0.0'} + dependencies: + eventemitter3: 4.0.4 + underscore: 1.9.1 + web3-core-helpers: 1.2.11 + dev: false + optional: true + + /web3-core-subscriptions@1.8.2: + resolution: {integrity: sha512-vXQogHDmAIQcKpXvGiMddBUeP9lnKgYF64+yQJhPNE5PnWr1sAibXuIPV7mIPihpFr/n/DORRj6Wh1pUv9zaTw==} + engines: {node: '>=8.0.0'} + dependencies: + eventemitter3: 4.0.4 + web3-core-helpers: 1.8.2 + + /web3-core@1.2.11: + resolution: {integrity: sha512-CN7MEYOY5ryo5iVleIWRE3a3cZqVaLlIbIzDPsvQRUfzYnvzZQRZBm9Mq+ttDi2STOOzc1MKylspz/o3yq/LjQ==} + engines: {node: '>=8.0.0'} + dependencies: + '@types/bn.js': 4.11.6 + '@types/node': 12.20.55 + bignumber.js: 9.1.1 + web3-core-helpers: 1.2.11 + web3-core-method: 1.2.11 + web3-core-requestmanager: 1.2.11 + web3-utils: 1.2.11 + transitivePeerDependencies: + - supports-color + dev: false + optional: true + + /web3-core@1.8.2: + resolution: {integrity: sha512-DJTVEAYcNqxkqruJE+Rxp3CIv0y5AZMwPHQmOkz/cz+MM75SIzMTc0AUdXzGyTS8xMF8h3YWMQGgGEy8SBf1PQ==} + engines: {node: '>=8.0.0'} + dependencies: + '@types/bn.js': 5.1.1 + '@types/node': 12.20.55 + bignumber.js: 9.1.1 + web3-core-helpers: 1.8.2 + web3-core-method: 1.8.2 + web3-core-requestmanager: 1.8.2 + web3-utils: 1.8.2 + transitivePeerDependencies: + - encoding + - supports-color + + /web3-eth-abi@1.2.11: + resolution: {integrity: sha512-PkRYc0+MjuLSgg03QVWqWlQivJqRwKItKtEpRUaxUAeLE7i/uU39gmzm2keHGcQXo3POXAbOnMqkDvOep89Crg==} + engines: {node: '>=8.0.0'} + dependencies: + '@ethersproject/abi': 5.0.0-beta.153 + underscore: 1.9.1 + web3-utils: 1.2.11 + dev: false + optional: true + + /web3-eth-abi@1.8.2: + resolution: {integrity: sha512-Om9g3kaRNjqiNPAgKwGT16y+ZwtBzRe4ZJFGjLiSs6v5I7TPNF+rRMWuKnR6jq0azQZDj6rblvKFMA49/k48Og==} + engines: {node: '>=8.0.0'} + dependencies: + '@ethersproject/abi': 5.7.0 + web3-utils: 1.8.2 + + /web3-eth-accounts@1.2.11: + resolution: {integrity: sha512-6FwPqEpCfKIh3nSSGeo3uBm2iFSnFJDfwL3oS9pyegRBXNsGRVpgiW63yhNzL0796StsvjHWwQnQHsZNxWAkGw==} + engines: {node: '>=8.0.0'} + dependencies: + crypto-browserify: 3.12.0 + eth-lib: 0.2.8 + ethereumjs-common: 1.5.0 + ethereumjs-tx: 2.1.2 + scrypt-js: 3.0.1 + underscore: 1.9.1 + uuid: 3.3.2 + web3-core: 1.2.11 + web3-core-helpers: 1.2.11 + web3-core-method: 1.2.11 + web3-utils: 1.2.11 + transitivePeerDependencies: + - supports-color + dev: false + optional: true + + /web3-eth-accounts@1.8.2: + resolution: {integrity: sha512-c367Ij63VCz9YdyjiHHWLFtN85l6QghgwMQH2B1eM/p9Y5lTlTX7t/Eg/8+f1yoIStXbk2w/PYM2lk+IkbqdLA==} + engines: {node: '>=8.0.0'} + dependencies: + '@ethereumjs/common': 2.5.0 + '@ethereumjs/tx': 3.3.2 + eth-lib: 0.2.8 + ethereumjs-util: 7.1.5 + scrypt-js: 3.0.1 + uuid: 9.0.0 + web3-core: 1.8.2 + web3-core-helpers: 1.8.2 + web3-core-method: 1.8.2 + web3-utils: 1.8.2 + transitivePeerDependencies: + - encoding + - supports-color + + /web3-eth-contract@1.2.11: + resolution: {integrity: sha512-MzYuI/Rq2o6gn7vCGcnQgco63isPNK5lMAan2E51AJLknjSLnOxwNY3gM8BcKoy4Z+v5Dv00a03Xuk78JowFow==} + engines: {node: '>=8.0.0'} + dependencies: + '@types/bn.js': 4.11.6 + underscore: 1.9.1 + web3-core: 1.2.11 + web3-core-helpers: 1.2.11 + web3-core-method: 1.2.11 + web3-core-promievent: 1.2.11 + web3-core-subscriptions: 1.2.11 + web3-eth-abi: 1.2.11 + web3-utils: 1.2.11 + transitivePeerDependencies: + - supports-color + dev: false + optional: true + + /web3-eth-contract@1.8.2: + resolution: {integrity: sha512-ID5A25tHTSBNwOPjiXSVzxruz006ULRIDbzWTYIFTp7NJ7vXu/kynKK2ag/ObuTqBpMbobP8nXcA9b5EDkIdQA==} + engines: {node: '>=8.0.0'} + dependencies: + '@types/bn.js': 5.1.1 + web3-core: 1.8.2 + web3-core-helpers: 1.8.2 + web3-core-method: 1.8.2 + web3-core-promievent: 1.8.2 + web3-core-subscriptions: 1.8.2 + web3-eth-abi: 1.8.2 + web3-utils: 1.8.2 + transitivePeerDependencies: + - encoding + - supports-color + + /web3-eth-ens@1.2.11: + resolution: {integrity: sha512-dbW7dXP6HqT1EAPvnniZVnmw6TmQEKF6/1KgAxbo8iBBYrVTMDGFQUUnZ+C4VETGrwwaqtX4L9d/FrQhZ6SUiA==} + engines: {node: '>=8.0.0'} + dependencies: + content-hash: 2.5.2 + eth-ens-namehash: 2.0.8 + underscore: 1.9.1 + web3-core: 1.2.11 + web3-core-helpers: 1.2.11 + web3-core-promievent: 1.2.11 + web3-eth-abi: 1.2.11 + web3-eth-contract: 1.2.11 + web3-utils: 1.2.11 + transitivePeerDependencies: + - supports-color + dev: false + optional: true + + /web3-eth-ens@1.8.2: + resolution: {integrity: sha512-PWph7C/CnqdWuu1+SH4U4zdrK4t2HNt0I4XzPYFdv9ugE8EuojselioPQXsVGvjql+Nt3jDLvQvggPqlMbvwRw==} + engines: {node: '>=8.0.0'} + dependencies: + content-hash: 2.5.2 + eth-ens-namehash: 2.0.8 + web3-core: 1.8.2 + web3-core-helpers: 1.8.2 + web3-core-promievent: 1.8.2 + web3-eth-abi: 1.8.2 + web3-eth-contract: 1.8.2 + web3-utils: 1.8.2 + transitivePeerDependencies: + - encoding + - supports-color + + /web3-eth-iban@1.2.11: + resolution: {integrity: sha512-ozuVlZ5jwFC2hJY4+fH9pIcuH1xP0HEFhtWsR69u9uDIANHLPQQtWYmdj7xQ3p2YT4bQLq/axKhZi7EZVetmxQ==} + engines: {node: '>=8.0.0'} + dependencies: + bn.js: 4.12.0 + web3-utils: 1.2.11 + dev: false + optional: true + + /web3-eth-iban@1.8.2: + resolution: {integrity: sha512-h3vNblDWkWMuYx93Q27TAJz6lhzpP93EiC3+45D6xoz983p6si773vntoQ+H+5aZhwglBtoiBzdh7PSSOnP/xQ==} + engines: {node: '>=8.0.0'} + dependencies: + bn.js: 5.2.1 + web3-utils: 1.8.2 + + /web3-eth-personal@1.2.11: + resolution: {integrity: sha512-42IzUtKq9iHZ8K9VN0vAI50iSU9tOA1V7XU2BhF/tb7We2iKBVdkley2fg26TxlOcKNEHm7o6HRtiiFsVK4Ifw==} + engines: {node: '>=8.0.0'} + dependencies: + '@types/node': 12.20.55 + web3-core: 1.2.11 + web3-core-helpers: 1.2.11 + web3-core-method: 1.2.11 + web3-net: 1.2.11 + web3-utils: 1.2.11 + transitivePeerDependencies: + - supports-color + dev: false + optional: true + + /web3-eth-personal@1.8.2: + resolution: {integrity: sha512-Vg4HfwCr7doiUF/RC+Jz0wT4+cYaXcOWMAW2AHIjHX6Z7Xwa8nrURIeQgeEE62qcEHAzajyAdB1u6bJyTfuCXw==} + engines: {node: '>=8.0.0'} + dependencies: + '@types/node': 12.20.55 + web3-core: 1.8.2 + web3-core-helpers: 1.8.2 + web3-core-method: 1.8.2 + web3-net: 1.8.2 + web3-utils: 1.8.2 + transitivePeerDependencies: + - encoding + - supports-color + + /web3-eth@1.2.11: + resolution: {integrity: sha512-REvxW1wJ58AgHPcXPJOL49d1K/dPmuw4LjPLBPStOVkQjzDTVmJEIsiLwn2YeuNDd4pfakBwT8L3bz1G1/wVsQ==} + engines: {node: '>=8.0.0'} + dependencies: + underscore: 1.9.1 + web3-core: 1.2.11 + web3-core-helpers: 1.2.11 + web3-core-method: 1.2.11 + web3-core-subscriptions: 1.2.11 + web3-eth-abi: 1.2.11 + web3-eth-accounts: 1.2.11 + web3-eth-contract: 1.2.11 + web3-eth-ens: 1.2.11 + web3-eth-iban: 1.2.11 + web3-eth-personal: 1.2.11 + web3-net: 1.2.11 + web3-utils: 1.2.11 + transitivePeerDependencies: + - supports-color + dev: false + optional: true + + /web3-eth@1.8.2: + resolution: {integrity: sha512-JoTiWWc4F4TInpbvDUGb0WgDYJsFhuIjJlinc5ByjWD88Gvh+GKLsRjjFdbqe5YtwIGT4NymwoC5LQd1K6u/QQ==} + engines: {node: '>=8.0.0'} + dependencies: + web3-core: 1.8.2 + web3-core-helpers: 1.8.2 + web3-core-method: 1.8.2 + web3-core-subscriptions: 1.8.2 + web3-eth-abi: 1.8.2 + web3-eth-accounts: 1.8.2 + web3-eth-contract: 1.8.2 + web3-eth-ens: 1.8.2 + web3-eth-iban: 1.8.2 + web3-eth-personal: 1.8.2 + web3-net: 1.8.2 + web3-utils: 1.8.2 + transitivePeerDependencies: + - encoding + - supports-color + + /web3-net@1.2.11: + resolution: {integrity: sha512-sjrSDj0pTfZouR5BSTItCuZ5K/oZPVdVciPQ6981PPPIwJJkCMeVjD7I4zO3qDPCnBjBSbWvVnLdwqUBPtHxyg==} + engines: {node: '>=8.0.0'} + dependencies: + web3-core: 1.2.11 + web3-core-method: 1.2.11 + web3-utils: 1.2.11 + transitivePeerDependencies: + - supports-color + dev: false + optional: true + + /web3-net@1.8.2: + resolution: {integrity: sha512-1itkDMGmbgb83Dg9nporFes9/fxsU7smJ3oRXlFkg4ZHn8YJyP1MSQFPJWWwSc+GrcCFt4O5IrUTvEkHqE3xag==} + engines: {node: '>=8.0.0'} + dependencies: + web3-core: 1.8.2 + web3-core-method: 1.8.2 + web3-utils: 1.8.2 + transitivePeerDependencies: + - encoding + - supports-color + + /web3-provider-engine@14.0.6: + resolution: {integrity: sha512-tr5cGSyxfSC/JqiUpBlJtfZpwQf1yAA8L/zy1C6fDFm0ntR974pobJ4v4676atpZne4Ze5VFy3kPPahHe9gQiQ==} + dependencies: + async: 2.6.4 + backoff: 2.5.0 + clone: 2.1.2 + cross-fetch: 2.2.6 + eth-block-tracker: 3.0.1 + eth-json-rpc-infura: 3.2.1 + eth-sig-util: 1.4.2 + ethereumjs-block: 1.7.1 + ethereumjs-tx: 1.3.7 + ethereumjs-util: 5.2.0 + ethereumjs-vm: 2.6.0 + json-rpc-error: 2.0.0 + json-stable-stringify: 1.0.2 + promise-to-callback: 1.0.0 + readable-stream: 2.3.8 + request: 2.88.2 + semaphore: 1.1.0 + tape: 4.16.2 + ws: 5.2.3 + xhr: 2.6.0 + xtend: 4.0.2 + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate + dev: false + + /web3-provider-engine@14.2.1: + resolution: {integrity: sha512-iSv31h2qXkr9vrL6UZDm4leZMc32SjWJFGOp/D92JXfcEboCqraZyuExDkpxKw8ziTufXieNM7LSXNHzszYdJw==} + dependencies: + async: 2.6.4 + backoff: 2.5.0 + clone: 2.1.2 + cross-fetch: 2.2.6 + eth-block-tracker: 3.0.1 + eth-json-rpc-infura: 3.2.1 + eth-sig-util: 1.4.2 + ethereumjs-block: 1.7.1 + ethereumjs-tx: 1.3.7 + ethereumjs-util: 5.2.0 + ethereumjs-vm: 2.6.0 + json-rpc-error: 2.0.0 + json-stable-stringify: 1.0.2 + promise-to-callback: 1.0.0 + readable-stream: 2.3.8 + request: 2.88.2 + semaphore: 1.1.0 + ws: 5.2.3 + xhr: 2.6.0 + xtend: 4.0.2 + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate + dev: false + + /web3-provider-engine@16.0.1(@babel/core@7.20.12): + resolution: {integrity: sha512-/Eglt2aocXMBiDj7Se/lyZnNDaHBaoJlaUfbP5HkLJQC/HlGbR+3/W+dINirlJDhh7b54DzgykqY7ksaU5QgTg==} + dependencies: + async: 2.6.4 + backoff: 2.5.0 + clone: 2.1.2 + cross-fetch: 2.2.6 + eth-block-tracker: 4.4.3(@babel/core@7.20.12) + eth-json-rpc-filters: 4.2.2 + eth-json-rpc-infura: 5.1.0 + eth-json-rpc-middleware: 6.0.0 + eth-rpc-errors: 3.0.0 + eth-sig-util: 1.4.2 + ethereumjs-block: 1.7.1 + ethereumjs-tx: 1.3.7 + ethereumjs-util: 5.2.0 + ethereumjs-vm: 2.6.0 + json-stable-stringify: 1.0.2 + promise-to-callback: 1.0.0 + readable-stream: 2.3.8 + request: 2.88.2 + semaphore: 1.1.0 + ws: 5.2.3 + xhr: 2.6.0 + xtend: 4.0.2 + transitivePeerDependencies: + - '@babel/core' + - bufferutil + - encoding + - supports-color + - utf-8-validate + dev: false + + /web3-providers-http@1.2.11: + resolution: {integrity: sha512-psh4hYGb1+ijWywfwpB2cvvOIMISlR44F/rJtYkRmQ5jMvG4FOCPlQJPiHQZo+2cc3HbktvvSJzIhkWQJdmvrA==} + engines: {node: '>=8.0.0'} + dependencies: + web3-core-helpers: 1.2.11 + xhr2-cookies: 1.1.0 + dev: false + optional: true + + /web3-providers-http@1.8.2: + resolution: {integrity: sha512-2xY94IIEQd16+b+vIBF4IC1p7GVaz9q4EUFscvMUjtEq4ru4Atdzjs9GP+jmcoo49p70II0UV3bqQcz0TQfVyQ==} + engines: {node: '>=8.0.0'} + dependencies: + abortcontroller-polyfill: 1.7.5 + cross-fetch: 3.1.5 + es6-promise: 4.2.8 + web3-core-helpers: 1.8.2 + transitivePeerDependencies: + - encoding + + /web3-providers-ipc@1.2.11: + resolution: {integrity: sha512-yhc7Y/k8hBV/KlELxynWjJDzmgDEDjIjBzXK+e0rHBsYEhdCNdIH5Psa456c+l0qTEU2YzycF8VAjYpWfPnBpQ==} + engines: {node: '>=8.0.0'} + dependencies: + oboe: 2.1.4 + underscore: 1.9.1 + web3-core-helpers: 1.2.11 + dev: false + optional: true + + /web3-providers-ipc@1.8.2: + resolution: {integrity: sha512-p6fqKVGFg+WiXGHWnB1hu43PbvPkDHTz4RgoEzbXugv5rtv5zfYLqm8Ba6lrJOS5ks9kGKR21a0y3NzE3u7V4w==} + engines: {node: '>=8.0.0'} + dependencies: + oboe: 2.1.5 + web3-core-helpers: 1.8.2 + + /web3-providers-ws@1.2.11: + resolution: {integrity: sha512-ZxnjIY1Er8Ty+cE4migzr43zA/+72AF1myzsLaU5eVgdsfV7Jqx7Dix1hbevNZDKFlSoEyq/3j/jYalh3So1Zg==} + engines: {node: '>=8.0.0'} + dependencies: + eventemitter3: 4.0.4 + underscore: 1.9.1 + web3-core-helpers: 1.2.11 + websocket: 1.0.34 + transitivePeerDependencies: + - supports-color + dev: false + optional: true + + /web3-providers-ws@1.8.2: + resolution: {integrity: sha512-3s/4K+wHgbiN+Zrp9YjMq2eqAF6QGABw7wFftPdx+m5hWImV27/MoIx57c6HffNRqZXmCHnfWWFCNHHsi7wXnA==} + engines: {node: '>=8.0.0'} + dependencies: + eventemitter3: 4.0.4 + web3-core-helpers: 1.8.2 + websocket: 1.0.34 + transitivePeerDependencies: + - supports-color + + /web3-shh@1.2.11: + resolution: {integrity: sha512-B3OrO3oG1L+bv3E1sTwCx66injW1A8hhwpknDUbV+sw3fehFazA06z9SGXUefuFI1kVs4q2vRi0n4oCcI4dZDg==} + engines: {node: '>=8.0.0'} + dependencies: + web3-core: 1.2.11 + web3-core-method: 1.2.11 + web3-core-subscriptions: 1.2.11 + web3-net: 1.2.11 + transitivePeerDependencies: + - supports-color + dev: false + optional: true + + /web3-shh@1.8.2: + resolution: {integrity: sha512-uZ+3MAoNcaJsXXNCDnizKJ5viBNeHOFYsCbFhV755Uu52FswzTOw6DtE7yK9nYXMtIhiSgi7nwl1RYzP8pystw==} + engines: {node: '>=8.0.0'} + requiresBuild: true + dependencies: + web3-core: 1.8.2 + web3-core-method: 1.8.2 + web3-core-subscriptions: 1.8.2 + web3-net: 1.8.2 + transitivePeerDependencies: + - encoding + - supports-color + + /web3-utils@1.2.11: + resolution: {integrity: sha512-3Tq09izhD+ThqHEaWYX4VOT7dNPdZiO+c/1QMA0s5X2lDFKK/xHJb7cyTRRVzN2LvlHbR7baS1tmQhSua51TcQ==} + engines: {node: '>=8.0.0'} + dependencies: + bn.js: 4.12.0 + eth-lib: 0.2.8 + ethereum-bloom-filters: 1.0.10 + ethjs-unit: 0.1.6 + number-to-bn: 1.7.0 + randombytes: 2.1.0 + underscore: 1.9.1 + utf8: 3.0.0 + dev: false + optional: true + + /web3-utils@1.8.2: + resolution: {integrity: sha512-v7j6xhfLQfY7xQDrUP0BKbaNrmZ2/+egbqP9q3KYmOiPpnvAfol+32slgL0WX/5n8VPvKCK5EZ1HGrAVICSToA==} + engines: {node: '>=8.0.0'} + dependencies: + bn.js: 5.2.1 + ethereum-bloom-filters: 1.0.10 + ethereumjs-util: 7.1.5 + ethjs-unit: 0.1.6 + number-to-bn: 1.7.0 + randombytes: 2.1.0 + utf8: 3.0.0 + + /web3@1.2.11: + resolution: {integrity: sha512-mjQ8HeU41G6hgOYm1pmeH0mRAeNKJGnJEUzDMoerkpw7QUQT4exVREgF1MYPvL/z6vAshOXei25LE/t/Bxl8yQ==} + engines: {node: '>=8.0.0'} + requiresBuild: true + dependencies: + web3-bzz: 1.2.11 + web3-core: 1.2.11 + web3-eth: 1.2.11 + web3-eth-personal: 1.2.11 + web3-net: 1.2.11 + web3-shh: 1.2.11 + web3-utils: 1.2.11 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: false + optional: true + + /web3@1.8.2: + resolution: {integrity: sha512-92h0GdEHW9wqDICQQKyG4foZBYi0OQkyg4CRml2F7XBl/NG+fu9o6J19kzfFXzSBoA4DnJXbyRgj/RHZv5LRiw==} + engines: {node: '>=8.0.0'} + requiresBuild: true + dependencies: + web3-bzz: 1.8.2 + web3-core: 1.8.2 + web3-eth: 1.8.2 + web3-eth-personal: 1.8.2 + web3-net: 1.8.2 + web3-shh: 1.8.2 + web3-utils: 1.8.2 + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate + + /webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + + /websocket@1.0.32: + resolution: {integrity: sha512-i4yhcllSP4wrpoPMU2N0TQ/q0O94LRG/eUQjEAamRltjQ1oT1PFFKOG4i877OlJgCG8rw6LrrowJp+TYCEWF7Q==} + engines: {node: '>=4.0.0'} + dependencies: + bufferutil: 4.0.7 + debug: 2.6.9 + es5-ext: 0.10.62 + typedarray-to-buffer: 3.1.5 + utf-8-validate: 5.0.10 + yaeti: 0.0.6 + transitivePeerDependencies: + - supports-color + dev: false + + /websocket@1.0.34: + resolution: {integrity: sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==} + engines: {node: '>=4.0.0'} + dependencies: + bufferutil: 4.0.7 + debug: 2.6.9 + es5-ext: 0.10.62 + typedarray-to-buffer: 3.1.5 + utf-8-validate: 5.0.10 + yaeti: 0.0.6 + transitivePeerDependencies: + - supports-color + + /whatwg-fetch@2.0.4: + resolution: {integrity: sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==} + dev: false + + /whatwg-fetch@3.6.2: + resolution: {integrity: sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==} + + /whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + + /which-boxed-primitive@1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + dependencies: + is-bigint: 1.0.4 + is-boolean-object: 1.1.2 + is-number-object: 1.0.7 + is-string: 1.0.7 + is-symbol: 1.0.4 + + /which-module@2.0.0: + resolution: {integrity: sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==} + + /which-pm-runs@1.1.0: + resolution: {integrity: sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==} + engines: {node: '>=4'} + dev: false + optional: true + + /which-pm@2.0.0: + resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==} + engines: {node: '>=8.15'} + dependencies: + load-yaml-file: 0.2.0 + path-exists: 4.0.0 + dev: true + + /which-typed-array@1.1.9: + resolution: {integrity: sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.0 + is-typed-array: 1.1.10 + + /which@1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true + dependencies: + isexe: 2.0.0 + + /which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: 2.0.0 + + /wide-align@1.1.3: + resolution: {integrity: sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==} + dependencies: + string-width: 2.1.1 + dev: false + optional: true + + /word-wrap@1.2.3: + resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} + engines: {node: '>=0.10.0'} + + /wordwrap@1.0.0: + resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} + dev: true + + /wrap-ansi@5.1.0: + resolution: {integrity: sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==} + engines: {node: '>=6'} + dependencies: + ansi-styles: 3.2.1 + string-width: 3.1.0 + strip-ansi: 5.2.0 + dev: false + + /wrap-ansi@6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: true + + /wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: true + + /wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + /write-file-atomic@4.0.2: + resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + imurmurhash: 0.1.4 + signal-exit: 3.0.7 + dev: true + + /ws@3.3.3: + resolution: {integrity: sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + dependencies: + async-limiter: 1.0.1 + safe-buffer: 5.1.2 + ultron: 1.1.1 + + /ws@5.2.3: + resolution: {integrity: sha512-jZArVERrMsKUatIdnLzqvcfydI85dvd/Fp1u/VOpfdDWQ4c9qWXe+VIeAbQ5FrDwciAkr+lzofXLz3Kuf26AOA==} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + dependencies: + async-limiter: 1.0.1 + dev: false + + /ws@7.1.2: + resolution: {integrity: sha512-gftXq3XI81cJCgkUiAVixA0raD9IVmXqsylCrjRygw4+UOOGzPoxnQ6r/CnVL9i+mDncJo94tSkyrtuuQVBmrg==} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + dependencies: + async-limiter: 1.0.1 + dev: false + + /ws@7.5.3: + resolution: {integrity: sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg==} + engines: {node: '>=8.3.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + dev: false + + /xhr-request-promise@0.1.3: + resolution: {integrity: sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg==} + dependencies: + xhr-request: 1.1.0 + + /xhr-request@1.1.0: + resolution: {integrity: sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==} + dependencies: + buffer-to-arraybuffer: 0.0.5 + object-assign: 4.1.1 + query-string: 5.1.1 + simple-get: 2.8.2 + timed-out: 4.0.1 + url-set-query: 1.0.0 + xhr: 2.6.0 + + /xhr2-cookies@1.1.0: + resolution: {integrity: sha512-hjXUA6q+jl/bd8ADHcVfFsSPIf+tyLIjuO9TwJC9WI6JP2zKcS7C+p56I9kCLLsaCiNT035iYvEUUzdEFj/8+g==} + dependencies: + cookiejar: 2.1.4 + dev: false + + /xhr@2.6.0: + resolution: {integrity: sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==} + dependencies: + global: 4.4.0 + is-function: 1.0.2 + parse-headers: 2.0.5 + xtend: 4.0.2 + + /xmlhttprequest@1.8.0: + resolution: {integrity: sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA==} + engines: {node: '>=0.4.0'} + dev: false + + /xtend@2.1.2: + resolution: {integrity: sha512-vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ==} + engines: {node: '>=0.4'} + dependencies: + object-keys: 0.4.0 + dev: false + + /xtend@4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} + + /y18n@4.0.3: + resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} + + /y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + dev: true + + /yaeti@0.0.6: + resolution: {integrity: sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug==} + engines: {node: '>=0.10.32'} + + /yallist@2.1.2: + resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} + dev: true + + /yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + + /yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + + /yaml@1.10.2: + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} + engines: {node: '>= 6'} + + /yargs-parser@13.1.2: + resolution: {integrity: sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==} + dependencies: + camelcase: 5.3.1 + decamelize: 1.2.0 + dev: false + + /yargs-parser@18.1.3: + resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} + engines: {node: '>=6'} + dependencies: + camelcase: 5.3.1 + decamelize: 1.2.0 + dev: true + + /yargs-parser@20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} + engines: {node: '>=10'} + dev: true + + /yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + dev: true + + /yargs@13.3.2: + resolution: {integrity: sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==} + dependencies: + cliui: 5.0.0 + find-up: 3.0.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + require-main-filename: 2.0.0 + set-blocking: 2.0.0 + string-width: 3.1.0 + which-module: 2.0.0 + y18n: 4.0.3 + yargs-parser: 13.1.2 + dev: false + + /yargs@15.4.1: + resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} + engines: {node: '>=8'} + dependencies: + cliui: 6.0.0 + decamelize: 1.2.0 + find-up: 4.1.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + require-main-filename: 2.0.0 + set-blocking: 2.0.0 + string-width: 4.2.3 + which-module: 2.0.0 + y18n: 4.0.3 + yargs-parser: 18.1.3 + dev: true + + /yargs@17.6.2: + resolution: {integrity: sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==} + engines: {node: '>=12'} + dependencies: + cliui: 8.0.1 + escalade: 3.1.1 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + dev: true + + /yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + + /z-schema@5.0.5: + resolution: {integrity: sha512-D7eujBWkLa3p2sIpJA0d1pr7es+a7m0vFAnZLlCEKq/Ij2k0MLi9Br2UPxoxdYystm5K1yeBGzub0FlYUEWj2Q==} + engines: {node: '>=8.0.0'} + hasBin: true + dependencies: + lodash.get: 4.4.2 + lodash.isequal: 4.5.0 + validator: 13.9.0 + optionalDependencies: + commander: 9.5.0 + dev: true + + github.com/ethereumjs/ethereumjs-abi/ee3994657fa7a427238e6ba92a84d0b529bbcde0: + resolution: {registry: https://registry.npmjs.org/, tarball: https://codeload.github.com/ethereumjs/ethereumjs-abi/tar.gz/ee3994657fa7a427238e6ba92a84d0b529bbcde0} + name: ethereumjs-abi + version: 0.6.8 + dependencies: + bn.js: 4.12.0 + ethereumjs-util: 6.2.1 + dev: false diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml new file mode 100644 index 00000000..b14fc314 --- /dev/null +++ b/pnpm-workspace.yaml @@ -0,0 +1,5 @@ +packages: + - 'workspace/apps/**/*' + - 'workspace/packages/*' + - 'workspace/tools/*' + - 'workspace/pipeline/*' diff --git a/public/favicon.svg b/public/favicon.svg deleted file mode 100644 index 9bb403a1..00000000 --- a/public/favicon.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/public/index.html b/public/index.html deleted file mode 100644 index 9b8b6dc6..00000000 --- a/public/index.html +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - -
- - diff --git a/scripts/dev-apps.js b/scripts/dev-apps.js new file mode 100644 index 00000000..2ccd471f --- /dev/null +++ b/scripts/dev-apps.js @@ -0,0 +1,18 @@ +const {execSync} = require('child_process'); + +const devApp = process.argv[2]; + +const sequentialExecution = async (...commands) => { + if (commands.length === 0) { + return 0; + } + + execSync(commands.shift(), {stdio: 'inherit'}); + + return sequentialExecution(...commands); +}; + +sequentialExecution( + `pnpm turbo run build --filter=@${devApp}^...`, + `pnpm turbo run dev --filter=@${devApp}` +); diff --git a/scripts/set-env.sh b/scripts/set-env.sh deleted file mode 100755 index 9983430d..00000000 --- a/scripts/set-env.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/sh - -content="window.__env__ = {" - -# Each line represents key=value pairs -while read -r line || [[ -n "$line" ]]; -do - # Split env variables by character `=` - if printf '%s\n' "$line" | grep -q -e '='; then - varname=$(printf '%s\n' "$line" | sed -e 's/=.*//') - varvalue=$(printf '%s\n' "$line" | sed -e 's/^[^=]*=//') - - content="${content} $varname: \"$varvalue\"," - echo $varname $varvalue - fi -done < <(printenv | grep REACT_APP) - -content="${content} };" -echo $content > ./usr/share/nginx/html/env-config.js diff --git a/scripts/start.sh b/scripts/start.sh deleted file mode 100755 index 462706bd..00000000 --- a/scripts/start.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh - -echo "setting env vars" -sh ./scripts/set-env.sh - -echo "starting nginx" -nginx -g "daemon off;" diff --git a/src/App.js b/src/App.js deleted file mode 100644 index e9b0d957..00000000 --- a/src/App.js +++ /dev/null @@ -1,48 +0,0 @@ -import {openInNewTab} from '@starkware-industries/commons-js-utils'; -import React from 'react'; -import {Navigate, Route, Routes} from 'react-router-dom'; - -import styles from './App.module.scss'; -import {ReactComponent as DiscordIcon} from './assets/svg/icons/discord.svg'; -import {Footer, Header} from './components/Containers'; -import {StyledBackground} from './components/UI'; -import {SideButton} from './components/UI/SideButton/SideButton'; -import {useConstants, useDiscordTabTracking} from './hooks'; -import {useAutoConnect} from './hooks/useAutoConnect'; -import {useApp} from './providers/AppProvider'; -import {Bridge, Faq, ProtectedRoute, Terms} from './routes'; - -export const App = () => { - const [trackDiscordClick] = useDiscordTabTracking(); - const {DISCORD_LINK_URL} = useConstants(); - const {isAcceptTerms, isScrollActive} = useApp(); - useAutoConnect(); - - const onDiscordClick = () => { - trackDiscordClick(); - openInNewTab(DISCORD_LINK_URL); - }; - - return ( -
-
-
- ); -}; diff --git a/src/abis/L2/index.js b/src/abis/L2/index.js deleted file mode 100644 index c4a1900d..00000000 --- a/src/abis/L2/index.js +++ /dev/null @@ -1,4 +0,0 @@ -import L2_ERC20_ABI from './erc20.json'; -import L2_BRIDGE_ABI from './token_bridge.json'; - -export {L2_ERC20_ABI, L2_BRIDGE_ABI}; diff --git a/src/analytics/index.js b/src/analytics/index.js deleted file mode 100644 index 2484ead7..00000000 --- a/src/analytics/index.js +++ /dev/null @@ -1,2 +0,0 @@ -export * from './track'; -export * from './track-event'; diff --git a/src/analytics/track-event.js b/src/analytics/track-event.js deleted file mode 100644 index 2de00b1c..00000000 --- a/src/analytics/track-event.js +++ /dev/null @@ -1,83 +0,0 @@ -export const TrackEvent = { - /** - * Menus - */ - SELECT_TOKEN_MENU: 'SELECT_TOKEN_MENU', - ACCOUNT_MENU: 'ACCOUNT_MENU', - TRANSFER_MENU: 'TRANSFER_MENU', - - /** - * Connect buttons - */ - CONNECT_ETHEREUM_WALLET_CLICK: 'CONNECT_ETHEREUM_WALLET_CLICK', - CONNECT_STARKNET_WALLET_CLICK: 'CONNECT_STARKNET_WALLET_CLICK', - CONNECT_WALLET_CLICK: 'CONNECT_WALLET_CLICK', - - /** - * Transfer menu - */ - TRANSFER: { - SWAP_NETWORK: 'TRANSFER_MENU/swap_network', - MAX_CLICK: 'TRANSFER_MENU/max_click', - TRANSFER_TO_L2: { - INITIATED: 'TRANSFER_MENU/transfer_to_l2_initiated', - SUCCESS: 'TRANSFER_MENU/transfer_to_l2_success', - ERROR: 'TRANSFER_MENU/transfer_to_l2_error', - REJECT: 'TRANSFER_MENU/transfer_to_l2_reject' - }, - TRANSFER_TO_L1: { - INITIATED: 'TRANSFER_MENU/transfer_to_l1_initiated', - SUCCESS: 'TRANSFER_MENU/transfer_to_l1_success', - ERROR: 'TRANSFER_MENU/transfer_to_l1_error', - REJECT: 'TRANSFER_MENU/transfer_to_l1_reject' - }, - COMPLETE_TRANSFER_TO_L1: { - INITIATED: 'TRANSFER_MENU/complete_transfer_to_l1_initiated', - SUCCESS: 'TRANSFER_MENU/complete_transfer_to_l1_success', - ERROR: 'TRANSFER_MENU/complete_transfer_to_l1_error', - REJECT: 'TRANSFER_MENU/complete_transfer_to_l1_reject' - } - }, - - /** - * Select token menu - */ - SELECT_TOKEN: { - TOKEN_SELECTED: 'SELECT_TOKEN_MENU/token_selected' - }, - - /** - * Account menu - */ - ACCOUNT: { - TX_LINK_CLICK: 'ACCOUNT_MENU/tx_link_click', - ACCOUNT_LINK_CLICK: 'ACCOUNT_MENU/account_link_click', - VIEW_TRANSFERS_LOG: 'ACCOUNT_MENU/view_transfers_log', - COMPLETE_TRANSFER_CLICK: 'ACCOUNT_MENU/complete_transfer', - ADDRESS_COPIED: 'ACCOUNT_MENU/address_copied' - }, - - /** - * Login screen - */ - LOGIN: { - WALLET_CLICK: 'LOGIN_MODAL/wallet_click', - LOGIN_ERROR: 'LOGIN_MODAL/login_error', - BLOCKED_ADDRESS: 'LOGIN_MODAL/blocked_address' - }, - - /** - * Terms screen - */ - TERMS_SCREEN: 'TERMS_SCREEN', - TERMS: { - ACCEPT_CLICK: 'TERMS_SCREEN/accept_click' - }, - - FAQ_SCREEN: 'FAQ_SCREEN', - - /** - * Tabs - */ - DISCORD_TAB_CLICK: 'discord_tab_click' -}; diff --git a/src/analytics/track.js b/src/analytics/track.js deleted file mode 100644 index 0b8a96e0..00000000 --- a/src/analytics/track.js +++ /dev/null @@ -1,15 +0,0 @@ -import splitbee from '@splitbee/web'; -import {getLogger} from '@starkware-industries/commons-js-utils'; - -const logger = getLogger('Analytics'); - -export const track = async (event, data) => { - logger.debug('Sending track event...', {event, data}); - await splitbee.track(event, data); - logger.debug('Track event sent.'); -}; - -export const setUser = async data => { - logger.debug('Set user', data); - await splitbee.user.set(data); -}; diff --git a/src/api/index.js b/src/api/index.js deleted file mode 100644 index 58bf48fb..00000000 --- a/src/api/index.js +++ /dev/null @@ -1 +0,0 @@ -export * from './screening'; diff --git a/src/api/screening.js b/src/api/screening.js deleted file mode 100644 index 7efb83b9..00000000 --- a/src/api/screening.js +++ /dev/null @@ -1,21 +0,0 @@ -import { - promiseHandler, - createHttpClient, - parseHttpClientError -} from '@starkware-industries/commons-js-utils'; - -import {API_ENDPOINT_URL} from '../config/envs'; - -const SCREENING_ENDPOINT = '/api/screening/risk'; -const httpClient = createHttpClient({baseURL: API_ENDPOINT_URL + SCREENING_ENDPOINT}); - -export const screenAddress = async address => { - const [result, error] = await promiseHandler(httpClient.get(`/${address}`)); - if (error) { - throw parseHttpClientError(error); - } - const { - data: {blocked} - } = result; - return blocked; -}; diff --git a/src/assets/fonts/Inter/Inter-Black.ttf b/src/assets/fonts/Inter/Inter-Black.ttf deleted file mode 100644 index 56537577..00000000 Binary files a/src/assets/fonts/Inter/Inter-Black.ttf and /dev/null differ diff --git a/src/assets/fonts/Inter/Inter-Bold.ttf b/src/assets/fonts/Inter/Inter-Bold.ttf deleted file mode 100644 index e98b84ce..00000000 Binary files a/src/assets/fonts/Inter/Inter-Bold.ttf and /dev/null differ diff --git a/src/assets/fonts/Inter/Inter-ExtraBold.ttf b/src/assets/fonts/Inter/Inter-ExtraBold.ttf deleted file mode 100644 index 7f16a0f0..00000000 Binary files a/src/assets/fonts/Inter/Inter-ExtraBold.ttf and /dev/null differ diff --git a/src/assets/fonts/Inter/Inter-ExtraLight.ttf b/src/assets/fonts/Inter/Inter-ExtraLight.ttf deleted file mode 100644 index 69426a3e..00000000 Binary files a/src/assets/fonts/Inter/Inter-ExtraLight.ttf and /dev/null differ diff --git a/src/assets/fonts/Inter/Inter-Light.ttf b/src/assets/fonts/Inter/Inter-Light.ttf deleted file mode 100644 index a5f07369..00000000 Binary files a/src/assets/fonts/Inter/Inter-Light.ttf and /dev/null differ diff --git a/src/assets/fonts/Inter/Inter-Medium.ttf b/src/assets/fonts/Inter/Inter-Medium.ttf deleted file mode 100644 index 721147d8..00000000 Binary files a/src/assets/fonts/Inter/Inter-Medium.ttf and /dev/null differ diff --git a/src/assets/fonts/Inter/Inter-Regular.ttf b/src/assets/fonts/Inter/Inter-Regular.ttf deleted file mode 100644 index 96fd6a12..00000000 Binary files a/src/assets/fonts/Inter/Inter-Regular.ttf and /dev/null differ diff --git a/src/assets/fonts/Inter/Inter-SemiBold.ttf b/src/assets/fonts/Inter/Inter-SemiBold.ttf deleted file mode 100644 index ddb27929..00000000 Binary files a/src/assets/fonts/Inter/Inter-SemiBold.ttf and /dev/null differ diff --git a/src/assets/fonts/Inter/Inter-Thin.ttf b/src/assets/fonts/Inter/Inter-Thin.ttf deleted file mode 100644 index 76be6252..00000000 Binary files a/src/assets/fonts/Inter/Inter-Thin.ttf and /dev/null differ diff --git a/src/assets/fonts/Inter/OFL.txt b/src/assets/fonts/Inter/OFL.txt deleted file mode 100644 index 9a134621..00000000 --- a/src/assets/fonts/Inter/OFL.txt +++ /dev/null @@ -1,93 +0,0 @@ -Copyright (c) 2016-2019 The Inter Project Authors (me@rsms.me) - -This Font Software is licensed under the SIL Open Font License, Version 1.1. -This license is copied below, and is also available with a FAQ at: -http://scripts.sil.org/OFL - - ------------------------------------------------------------ -SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 ------------------------------------------------------------ - -PREAMBLE -The goals of the Open Font License (OFL) are to stimulate worldwide -development of collaborative font projects, to support the font creation -efforts of academic and linguistic communities, and to provide a free and -open framework in which fonts may be shared and improved in partnership -with others. - -The OFL allows the licensed fonts to be used, studied, modified and -redistributed freely as long as they are not sold by themselves. The -fonts, including any derivative works, can be bundled, embedded, -redistributed and/or sold with any software provided that any reserved -names are not used by derivative works. The fonts and derivatives, -however, cannot be released under any other type of license. The -requirement for fonts to remain under this license does not apply -to any document created using the fonts or their derivatives. - -DEFINITIONS -"Font Software" refers to the set of files released by the Copyright -Holder(s) under this license and clearly marked as such. This may -include source files, build scripts and documentation. - -"Reserved Font Name" refers to any names specified as such after the -copyright statement(s). - -"Original Version" refers to the collection of Font Software components as -distributed by the Copyright Holder(s). - -"Modified Version" refers to any derivative made by adding to, deleting, -or substituting -- in part or in whole -- any of the components of the -Original Version, by changing formats or by porting the Font Software to a -new environment. - -"Author" refers to any designer, engineer, programmer, technical -writer or other person who contributed to the Font Software. - -PERMISSION & CONDITIONS -Permission is hereby granted, free of charge, to any person obtaining -a copy of the Font Software, to use, study, copy, merge, embed, modify, -redistribute, and sell modified and unmodified copies of the Font -Software, subject to the following conditions: - -1) Neither the Font Software nor any of its individual components, -in Original or Modified Versions, may be sold by itself. - -2) Original or Modified Versions of the Font Software may be bundled, -redistributed and/or sold with any software, provided that each copy -contains the above copyright notice and this license. These can be -included either as stand-alone text files, human-readable headers or -in the appropriate machine-readable metadata fields within text or -binary files as long as those fields can be easily viewed by the user. - -3) No Modified Version of the Font Software may use the Reserved Font -Name(s) unless explicit written permission is granted by the corresponding -Copyright Holder. This restriction only applies to the primary font name as -presented to the users. - -4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font -Software shall not be used to promote, endorse or advertise any -Modified Version, except to acknowledge the contribution(s) of the -Copyright Holder(s) and the Author(s) or with their explicit written -permission. - -5) The Font Software, modified or unmodified, in part or in whole, -must be distributed entirely under this license, and must not be -distributed under any other license. The requirement for fonts to -remain under this license does not apply to any document created -using the Font Software. - -TERMINATION -This license becomes null and void if any of the above conditions are -not met. - -DISCLAIMER -THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT -OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE -COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL -DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM -OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/src/assets/svg/chains/starknet.svg b/src/assets/svg/chains/starknet.svg deleted file mode 100644 index 5f737679..00000000 --- a/src/assets/svg/chains/starknet.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/src/assets/svg/exchanges/ftx.svg b/src/assets/svg/exchanges/ftx.svg deleted file mode 100644 index 62cdf48c..00000000 --- a/src/assets/svg/exchanges/ftx.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/src/assets/svg/wallets/gsw.svg b/src/assets/svg/wallets/gsw.svg deleted file mode 100644 index 996c95bc..00000000 --- a/src/assets/svg/wallets/gsw.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/src/components/Features/ToastManager/ToastManager.module.scss b/src/components/Features/ToastManager/ToastManager.module.scss deleted file mode 100644 index 2c66c0ee..00000000 --- a/src/components/Features/ToastManager/ToastManager.module.scss +++ /dev/null @@ -1,5 +0,0 @@ -@import '../../../index'; - -.toastManager { - margin-top: #{$--header-height}px; -} diff --git a/src/components/UI/LiquidityButton/LiquidityButton.js b/src/components/UI/LiquidityButton/LiquidityButton.js deleted file mode 100644 index e69de29b..00000000 diff --git a/src/components/UI/Modal/BlockedAddressModal/BlockedAddressModal.js b/src/components/UI/Modal/BlockedAddressModal/BlockedAddressModal.js deleted file mode 100644 index 1c9a238a..00000000 --- a/src/components/UI/Modal/BlockedAddressModal/BlockedAddressModal.js +++ /dev/null @@ -1,26 +0,0 @@ -import React from 'react'; - -import {Link, LinkType} from '../../'; -import {useBlockedAddressModalTranslation, useConstants} from '../../../../hooks'; -import styles from './BlockedAddressModal.module.scss'; - -const BlockedAddressModal = () => { - const {STARKGATE_COMPLIANCE_MAIL_ADDRESS} = useConstants(); - const {descriptionTxt, complianceTxt} = useBlockedAddressModalTranslation(); - - return ( -
-
{descriptionTxt}
-
- {complianceTxt}{' '} - -
-
- ); -}; - -export default BlockedAddressModal; diff --git a/src/components/UI/Modal/TransactionSubmittedModal/TransactionSubmittedModalBody/TransactionSubmittedModalBody.js b/src/components/UI/Modal/TransactionSubmittedModal/TransactionSubmittedModalBody/TransactionSubmittedModalBody.js deleted file mode 100644 index 8233864c..00000000 --- a/src/components/UI/Modal/TransactionSubmittedModal/TransactionSubmittedModalBody/TransactionSubmittedModalBody.js +++ /dev/null @@ -1,48 +0,0 @@ -import PropTypes from 'prop-types'; -import React from 'react'; - -import {ActionType} from '../../../../../enums'; -import {useTransactionSubmittedModalTranslation} from '../../../../../hooks'; -import {Alert, AlertType} from '../../../Alert/Alert'; -import {ModalText} from '../../ModalText/ModalText'; -import styles from './TransactionSubmittedModalBody.module.scss'; - -const TransactionSubmittedModalBody = ({transfer}) => { - const { - completeTransferToL1Txt, - transferToL1Txt, - transferToL1AlertTxt, - transferToL2Txt, - transferToL2AlertTxt, - transferAlertTitle - } = useTransactionSubmittedModalTranslation(); - const {type, l2hash, l1hash} = transfer; - const isTransferCompleted = l1hash && l2hash; - - const textMessage = - type === ActionType.TRANSFER_TO_L2 - ? transferToL2Txt - : isTransferCompleted - ? completeTransferToL1Txt - : transferToL1Txt; - - const messageComponent = - type === ActionType.TRANSFER_TO_L2 ? ( - - ) : !isTransferCompleted ? ( - - ) : null; - - return ( -
- {textMessage} - {messageComponent} -
- ); -}; - -TransactionSubmittedModalBody.propTypes = { - transfer: PropTypes.object -}; - -export default TransactionSubmittedModalBody; diff --git a/src/components/UI/Modal/TransactionSubmittedModal/TransactionSubmittedModalHeader/TransactionSubmittedModalHeader.js b/src/components/UI/Modal/TransactionSubmittedModal/TransactionSubmittedModalHeader/TransactionSubmittedModalHeader.js deleted file mode 100644 index 191143f3..00000000 --- a/src/components/UI/Modal/TransactionSubmittedModal/TransactionSubmittedModalHeader/TransactionSubmittedModalHeader.js +++ /dev/null @@ -1,20 +0,0 @@ -import React from 'react'; - -import {useTransactionSubmittedModalTranslation} from '../../../../../hooks/useTranslation'; -import {DynamicIcon} from '../../../DynamicIcon/DynamicIcon'; -import {ModalTitle} from '../../ModalTitle/ModalTitle'; -import styles from './TransactionSubmittedModalHeader.module.scss'; - -const TransactionSubmittedModalHeader = () => { - const {titleTxt} = useTransactionSubmittedModalTranslation(); - const icon = 'icons/rocket.svg'; - - return ( -
- {icon && } - {titleTxt} -
- ); -}; - -export default TransactionSubmittedModalHeader; diff --git a/src/components/UI/Modal/TransactionSubmittedModal/TransactionSubmittedModalHeader/TransactionSubmittedModalHeader.module.scss b/src/components/UI/Modal/TransactionSubmittedModal/TransactionSubmittedModalHeader/TransactionSubmittedModalHeader.module.scss deleted file mode 100644 index 698be7b0..00000000 --- a/src/components/UI/Modal/TransactionSubmittedModal/TransactionSubmittedModalHeader/TransactionSubmittedModalHeader.module.scss +++ /dev/null @@ -1,4 +0,0 @@ -.transactionSubmittedModalHeader { - text-align: center; - margin-top: 10px; -} diff --git a/src/components/UI/ReadMore/ReadMore.js b/src/components/UI/ReadMore/ReadMore.js deleted file mode 100644 index fbc2cd39..00000000 --- a/src/components/UI/ReadMore/ReadMore.js +++ /dev/null @@ -1,19 +0,0 @@ -import PropTypes from 'prop-types'; - -import styles from './ReadMore.module.scss'; - -const READ_MORE_TXT = 'read more'; - -export const ReadMore = ({url, text = READ_MORE_TXT, openInNewTab = false}) => { - return ( - - {text} - - ); -}; - -ReadMore.propTypes = { - url: PropTypes.string, - text: PropTypes.string, - openInNewTab: PropTypes.bool -}; diff --git a/src/components/UI/ReadMore/ReadMore.module.scss b/src/components/UI/ReadMore/ReadMore.module.scss deleted file mode 100644 index 95dd99fc..00000000 --- a/src/components/UI/ReadMore/ReadMore.module.scss +++ /dev/null @@ -1,9 +0,0 @@ -@import '../../../index'; - -.readMore { - color: $--color-very-light-azure; - text-decoration: none; - font-size: 12px; - line-height: 18px; - margin-left: 4px; -} diff --git a/src/config/envs.js b/src/config/envs.js deleted file mode 100644 index beb4f137..00000000 --- a/src/config/envs.js +++ /dev/null @@ -1,30 +0,0 @@ -import {ChainType} from '@starkware-industries/commons-js-enums'; -import {evaluate} from '@starkware-industries/commons-js-utils'; - -const env = {...process.env, ...window['__env__']}; - -export const ENV = env.REACT_APP_ENV; -export const AUTO_CONNECT = env.REACT_APP_AUTO_CONNECT === 'true'; -export const POLL_BLOCK_NUMBER_INTERVAL = Number(env.REACT_APP_POLL_BLOCK_NUMBER_INTERVAL); -export const SUPPORTED_TOKENS = env.REACT_APP_SUPPORTED_TOKENS.split(','); -export const SUPPORTED_L1_CHAIN_ID = Number(env.REACT_APP_SUPPORTED_CHAIN_ID); -export const SUPPORTED_L2_CHAIN_ID = - SUPPORTED_L1_CHAIN_ID === ChainType.L1.GOERLI ? ChainType.L2.GOERLI : ChainType.L2.MAIN; -export const STARKNET_CONTRACT_ADDRESS = env.REACT_APP_STARKNET_CONTRACT_ADDRESS; -export const ETHERSCAN_URL = env.REACT_APP_ETHERSCAN_URL; -export const ETHERSCAN_TX_URL = tx => evaluate(`${ETHERSCAN_URL}/tx/{{tx}}`, {tx}); -export const ETHERSCAN_ACCOUNT_URL = address => - evaluate(`${ETHERSCAN_URL}/address/{{address}}`, {address}); -export const VOYAGER_URL = env.REACT_APP_VOYAGER_URL; -export const VOYAGER_TX_URL = tx => evaluate(`${VOYAGER_URL}/tx/{{tx}}`, {tx}); -export const VOYAGER_ACCOUNT_URL = contract => - evaluate(`${VOYAGER_URL}/contract/{{contract}}`, {contract}); -export const STARKSCAN_URL = env.REACT_APP_STARKSCAN_URL; -export const STARKSCAN_TX_URL = tx => evaluate(`${STARKSCAN_URL}/tx/{{tx}}`, {tx}); -export const STARKSCAN_ETH_TX_URL = tx => evaluate(`${STARKSCAN_URL}/eth-tx/{{tx}}`, {tx}); -export const STARKSCAN_ACCOUNT_URL = contract => - evaluate(`${STARKSCAN_URL}/contract/{{contract}}`, {contract}); -export const LOCAL_STORAGE_TRANSFERS_LOG_KEY = env.REACT_APP_LOCAL_STORAGE_TRANSFERS_LOG_KEY; -export const LOCAL_STORAGE_ACCEPT_TERMS_KEY = env.REACT_APP_LOCAL_STORAGE_ACCEPT_TERMS; -export const API_ENDPOINT_URL = env.REACT_APP_API_ENDPOINT_URL; -export const ENABLE_SCREENING = env.REACT_APP_ENABLE_SCREENING !== 'false'; diff --git a/src/config/strings.js b/src/config/strings.js deleted file mode 100644 index 8d399ba1..00000000 --- a/src/config/strings.js +++ /dev/null @@ -1,152 +0,0 @@ -export default { - containers: { - header: { - chainTxt: 'Goerli testnet', - accountWalletBtnTxt: '{{address}}', - connectWalletBtnTxt: 'Connect {{network}} Wallet', - tabs: { - termsTxt: 'Terms', - faqTxt: 'FAQ' - } - }, - footer: { - rightsTxt: '© 2022 StarkWare Industries Ltd. All Rights Reserved' - } - }, - screens: { - faq: { - titleTxt: 'Frequently asked questions', - subtitleTxt: 'Everything you need to know about StarkGate.' - }, - terms: { - titleTxt: 'Terms of Service', - lastRevisedTxt: 'Last Revised: April 4, 2022', - acceptBtnTxt: 'I Accept' - } - }, - menus: { - backBtnTxt: 'Back', - account: { - titleTxt: '{{network}} Account', - copiedMsgTxt: 'Copied!', - logoutBtnTxt: 'Logout', - transferLogContainer: { - titleTxt: 'Transfers log', - singleOverviewTxt: 'recent transfer', - overviewTxt: 'recent transfers', - emptyMsgTxt: 'Transfers will appear here...', - viewMoreTxt: 'View more', - viewLessTxt: 'View less', - transferLog: { - completeTransferBtnTxt: 'Complete transfer' - } - } - }, - selectToken: { - titleTxt: 'Select token from ', - searchPlaceholder: 'Search' - }, - source: { - depositTxt: 'Deposit', - withdrawTxt: 'Withdraw', - toTxt: 'to', - fromTxt: 'from' - }, - transfer: { - negativeValueErrorMsg: 'Amount must be a positive number', - tooManyDigitsErrorMsg: 'Too many decimal places', - insufficientBalanceErrorMsg: 'Insufficient balance', - maxDepositErrorMsg: - 'You have exceeded the maximum transfer amount ({{maxDeposit}} {{symbol}}). Please reduce the amount and try again.', - bridgeIsFullErrorMsg: 'The token bridge is currently full, try another token', - maxBtnTxt: 'Max', - balanceTitleTxt: 'Available balance', - inputPlaceholderTxt: '0.00', - transferBtnTxt: 'Transfer', - disabledTransferBtnTxt: 'Enter an amount', - loginWalletButtonTxt: 'Connect Wallet' - }, - providers: { - descriptionTxt: 'Transfer crypto between {{source}} and StarkNet' - } - }, - modals: { - login: { - titleTxt: 'Connect {{networkName}} Wallet', - unsupportedChainIdTxt: 'Please select {{chainName}} in your wallet', - unsupportedBrowserTxt: - "Note - The current version of StarkGate (Alpha) doesn't support your browser. Use Chrome or Firefox to connect." - }, - transactionSubmitted: { - titleTxt: 'Transaction sent', - btnTxt: 'View on {{explorer}}', - transferAlertTitle: 'This is an Alpha version', - transferToL1Txt: 'Your transaction is now being processing on StarkNet.', - transferToL1AlertTxt: - 'The StarkNet → Ethereum transfer divided into two stages:\n• A waiting period of several hours is expected between the stages.\n• At the end of the first step, you will be required to sign in order to complete the transfer.', - transferToL2Txt: 'Your transaction has been successfully sent to StarkNet!', - transferToL2AlertTxt: - 'Completing a Ethereum → StarkNet transfer may take up to several hours depending on the congestion. It may take a while for your wallet balance to update.', - completeTransferToL1Txt: 'Your transfer is completed on Ethereum!' - }, - transferProgress: { - approval: { - type: 'Approval required', - message: 'Requesting permission to access your {{symbol}} funds.' - }, - deposit: { - type: 'Transfer in progress', - message: 'Transferring {{amount}} {{symbol}} to StarkNet...' - }, - initiateWithdraw: { - type: 'Initiate transfer', - message: 'Initiating transfer of {{amount}} {{symbol}} from StarkNet...' - }, - withdraw: { - type: 'Transfer in progress', - message: 'Transferring {{amount}} {{symbol}} to Ethereum...' - }, - waitForConfirm: { - type: '{{walletName}} confirmation...', - message: 'Do not refresh or close the page while waiting for the operation to be completed.' - }, - confirmTxt: 'Confirm this transaction in your wallet', - maxTotalBalanceErrorMsg: - "The maximal value allowed on StarkGate right now is {{maxTotalBalance}} {{symbol}} and the current value on StarkGate is {{currentTotalBalance}} {{symbol}}, so it's not possible to complete your deposit of {{amount}} {{symbol}}.\n\nPlease reduce your deposit amount and try again.", - errorTitle: 'Transaction error', - limitationErrorTitle: 'Limitation error' - }, - onboarding: { - titleTxt: 'Before takeoff, a few important notes!', - subtitleTxt: 'While using StarkGate Alpha:', - bulletsTxt: [ - 'Use Google Chrome or Mozilla Firefox', - 'Refrain from switching browsers', - 'Do not refresh the page while the transfer is being processed', - 'Do not delete the local storage of the browser' - ], - incognitoTxt: - 'The current StarkGate Alpha version does not support browsing in incognito mode.' - } - }, - toasts: { - alphaDisclaimerNotice: { - titleTxt: 'StarkNet Alpha', - bodyTxt: - 'This is an ALPHA version of StarkNet, and its Bridge. As such, delays may occur, and catastrophic bugs may lurk. Thanks, OGs, for trying it at this early stage.' - }, - transferLogLink: 'View on Transfer Log', - pendingTransfer: { - pendingTxt: 'Waiting for transaction to be accepted on StarkNet', - consumedTxt: 'Transaction accepted on StarkNet', - rejectedTxt: 'Transaction rejected on StarkNet' - }, - completeTransfer: { - titleTxt: 'StarkNet finished processing your transfer!', - bodyTxt: - 'Click on Complete Transfer to transfer the funds from StarkNet Bridge to your Ethereum address.', - dismissBtnTxt: 'Dismiss', - completeTransferBtnTxt: 'Complete Transfer' - } - } -}; diff --git a/src/enums/ActionType.js b/src/enums/ActionType.js deleted file mode 100644 index 6e5f31aa..00000000 --- a/src/enums/ActionType.js +++ /dev/null @@ -1,4 +0,0 @@ -export const ActionType = { - TRANSFER_TO_L2: 1, - TRANSFER_TO_L1: 2 -}; diff --git a/src/hooks/useAnimation.js b/src/hooks/useAnimation.js deleted file mode 100644 index 1519ade2..00000000 --- a/src/hooks/useAnimation.js +++ /dev/null @@ -1,16 +0,0 @@ -import {useState} from 'react'; - -export const useAnimation = interval => { - const [isAnimate, setIsAnimate] = useState(false); - const [timeoutId, setTimeoutId] = useState(null); - - const startAnimation = () => { - if (typeof timeoutId === 'number') { - clearTimeout(timeoutId); - } - setIsAnimate(true); - setTimeoutId(setTimeout(() => setIsAnimate(false), interval)); - }; - - return [isAnimate, startAnimation]; -}; diff --git a/src/hooks/useBridgeContractAPI.js b/src/hooks/useBridgeContractAPI.js deleted file mode 100644 index db334625..00000000 --- a/src/hooks/useBridgeContractAPI.js +++ /dev/null @@ -1,154 +0,0 @@ -import { - callContractL1, - sendTransactionL1, - parseFromDecimals, - parseToDecimals, - parseToFelt, - parseToUint256, - promiseHandler, - sendTransactionL2 -} from '@starkware-industries/commons-js-utils'; -import {useCallback} from 'react'; - -import {useL1Token} from '../providers/TokensProvider'; -import {useSelectedToken} from '../providers/TransferProvider'; -import {useL1Wallet} from '../providers/WalletsProvider'; -import {isDai} from '../utils'; -import { - useL1TokenBridgeContract, - useL2TokenBridgeContract, - useL2TokenContract -} from './useContract'; - -export const useBridgeContractAPI = () => { - const {account: accountL1} = useL1Wallet(); - const selectedToken = useSelectedToken(); - const getL1BridgeContract = useL1TokenBridgeContract(); - const getL2BridgeContract = useL2TokenBridgeContract(); - const getL2TokenContract = useL2TokenContract(); - const getL1Token = useL1Token(); - - const deposit = useCallback( - ({recipient, amount, emitter}) => { - const {bridgeAddress, decimals} = selectedToken; - const contract = getL1BridgeContract(bridgeAddress); - - return sendTransactionL1( - contract, - 'deposit', - [parseToDecimals(amount, decimals), recipient], - {from: accountL1}, - emitter - ); - }, - [selectedToken, accountL1, getL1BridgeContract] - ); - - const depositEth = useCallback( - ({recipient, amount, emitter}) => { - const {bridgeAddress} = selectedToken; - const contract = getL1BridgeContract(bridgeAddress); - - return sendTransactionL1( - contract, - 'deposit', - [recipient], - { - from: accountL1, - value: parseToDecimals(amount) - }, - emitter - ); - }, - [selectedToken, accountL1, getL1BridgeContract] - ); - - const withdraw = useCallback( - ({recipient, amount, symbol, emitter}) => { - const {bridgeAddress, decimals} = symbol ? getL1Token(symbol) : selectedToken; - const contract = getL1BridgeContract(bridgeAddress); - - return sendTransactionL1( - contract, - 'withdraw', - [parseToDecimals(amount, decimals), recipient], - { - from: recipient - }, - emitter - ); - }, - [selectedToken, getL1BridgeContract, getL1Token] - ); - - const maxDeposit = useCallback( - async token => { - const {bridgeAddress, decimals} = token || selectedToken; - const contract = getL1BridgeContract(bridgeAddress); - - const [maxDeposit, error] = await promiseHandler(callContractL1(contract, 'maxDeposit')); - if (error) { - return Promise.reject(error); - } - return parseFromDecimals(maxDeposit, decimals); - }, - [selectedToken, getL1BridgeContract] - ); - - const maxTotalBalance = useCallback( - async token => { - const {bridgeAddress, decimals, symbol} = token || selectedToken; - const contract = getL1BridgeContract(bridgeAddress); - - const [maxTotalBalance, error] = await promiseHandler( - callContractL1(contract, isDai(symbol) ? 'ceiling' : 'maxTotalBalance') - ); - if (error) { - return Promise.reject(error); - } - return parseFromDecimals(maxTotalBalance, decimals); - }, - [selectedToken, getL1BridgeContract] - ); - - const initiateWithdraw = useCallback( - async ({recipient, amount}) => { - const {bridgeAddress, tokenAddress, decimals, symbol} = selectedToken; - const bridge = getL2BridgeContract(bridgeAddress); - const token = getL2TokenContract(tokenAddress); - const transactions = [ - ...(isDai(symbol) - ? [ - { - contract: token, - method: 'increaseAllowance', - args: { - spender: bridge.address, - amount: parseToUint256(amount, decimals) - } - } - ] - : []), - { - contract: bridge, - method: 'initiate_withdraw', - args: { - l1Recipient: parseToFelt(recipient), - amount: parseToUint256(amount, decimals) - } - } - ]; - return sendTransactionL2(transactions); - }, - [selectedToken, getL2BridgeContract, getL2TokenContract] - ); - - return { - deposit, - depositEth, - withdraw, - maxDeposit, - maxTotalBalance, - initiateWithdraw - }; -}; diff --git a/src/hooks/useColors.js b/src/hooks/useColors.js deleted file mode 100644 index 0eca6d42..00000000 --- a/src/hooks/useColors.js +++ /dev/null @@ -1,5 +0,0 @@ -import {useColorsGeneric} from '@starkware-industries/commons-js-hooks'; - -import colors from '../styles/colors.module.scss'; - -export const useColors = () => useColorsGeneric(colors); diff --git a/src/hooks/useConstants.js b/src/hooks/useConstants.js deleted file mode 100644 index 8695ba7a..00000000 --- a/src/hooks/useConstants.js +++ /dev/null @@ -1,5 +0,0 @@ -import {useConstantsGeneric} from '@starkware-industries/commons-js-hooks'; - -import * as constants from '../config/constants'; - -export const useConstants = () => useConstantsGeneric(constants); diff --git a/src/hooks/useEnvs.js b/src/hooks/useEnvs.js deleted file mode 100644 index 1deafa68..00000000 --- a/src/hooks/useEnvs.js +++ /dev/null @@ -1,5 +0,0 @@ -import {useEnvsGeneric} from '@starkware-industries/commons-js-hooks'; - -import * as envs from '../config/envs.js'; - -export const useEnvs = () => useEnvsGeneric(envs); diff --git a/src/hooks/useFetchData.js b/src/hooks/useFetchData.js deleted file mode 100644 index 5bad3a2a..00000000 --- a/src/hooks/useFetchData.js +++ /dev/null @@ -1,32 +0,0 @@ -import {promiseHandler} from '@starkware-industries/commons-js-utils'; -import {useEffect, useState} from 'react'; - -export const useFetchData = (func, deps = []) => { - const [isLoading, setIsLoading] = useState(true); - const [data, setData] = useState(null); - const [error, setError] = useState(null); - - useEffect(() => { - async function fetch() { - setIsLoading(true); - setError(null); - const [data, error] = await promiseHandler(func()); - if (!mounted) return; - if (error) { - setError(error); - setIsLoading(false); - } - setData(data); - setIsLoading(false); - } - let mounted = true; - fetch(); - return () => (mounted = false); - }, deps); - - return { - isLoading, - data, - error - }; -}; diff --git a/src/hooks/useFonts.js b/src/hooks/useFonts.js deleted file mode 100644 index 716d6504..00000000 --- a/src/hooks/useFonts.js +++ /dev/null @@ -1,5 +0,0 @@ -import {useFontsGeneric} from '@starkware-industries/commons-js-hooks'; - -import fonts from '../styles/fonts.module.scss'; - -export const useFonts = () => useFontsGeneric(fonts); diff --git a/src/hooks/useLogger.js b/src/hooks/useLogger.js deleted file mode 100644 index ef77c417..00000000 --- a/src/hooks/useLogger.js +++ /dev/null @@ -1,3 +0,0 @@ -import {getLogger} from '@starkware-industries/commons-js-utils'; - -export const useLogger = name => getLogger(name); diff --git a/src/hooks/useScreening.js b/src/hooks/useScreening.js deleted file mode 100644 index 786df519..00000000 --- a/src/hooks/useScreening.js +++ /dev/null @@ -1,13 +0,0 @@ -import {useFetchData} from '@starkware-industries/commons-js-hooks'; - -import {screenAddress} from '../api'; - -export const useScreening = address => { - const { - isLoading: isScreening, - data: blocked, - error - } = useFetchData(address ? () => screenAddress(address) : null, [address]); - - return {isScreening, blocked, error}; -}; diff --git a/src/hooks/useTracking.js b/src/hooks/useTracking.js deleted file mode 100644 index 9fc1a370..00000000 --- a/src/hooks/useTracking.js +++ /dev/null @@ -1,76 +0,0 @@ -import {useTracking} from '@starkware-industries/commons-js-hooks'; -import {useCallback} from 'react'; - -import {track, TrackEvent} from '../analytics'; -import {MenuType} from '../enums'; - -export const useMenuTracking = () => { - const [trackAccountMenu, trackTransferMenu, trackSelectTokenMenu] = useTracking(track, [ - TrackEvent.ACCOUNT_MENU, - TrackEvent.TRANSFER_MENU, - TrackEvent.SELECT_TOKEN_MENU - ]); - - return useCallback(menu => { - switch (menu) { - case MenuType.ACCOUNT: - trackAccountMenu(); - break; - case MenuType.SELECT_TOKEN: - trackSelectTokenMenu(); - break; - case MenuType.SOURCE: - default: - trackTransferMenu(); - break; - } - }, []); -}; - -export const useLoginTracking = () => { - return useTracking(track, [...Object.values(TrackEvent.LOGIN)]); -}; - -export const useTermsTracking = () => { - return useTracking(track, [TrackEvent.TERMS_SCREEN, ...Object.values(TrackEvent.TERMS)]); -}; - -export const useTransferTracking = () => { - return useTracking(track, [TrackEvent.TRANSFER.MAX_CLICK, TrackEvent.TRANSFER.SWAP_NETWORK]); -}; - -export const useTransferToL1Tracking = () => { - return useTracking(track, [...Object.values(TrackEvent.TRANSFER.TRANSFER_TO_L1)]); -}; - -export const useTransferToL2Tracking = () => { - return useTracking(track, [...Object.values(TrackEvent.TRANSFER.TRANSFER_TO_L2)]); -}; - -export const useCompleteTransferToL1Tracking = () => { - return useTracking(track, [...Object.values(TrackEvent.TRANSFER.COMPLETE_TRANSFER_TO_L1)]); -}; - -export const useAccountTracking = () => { - return useTracking(track, [...Object.values(TrackEvent.ACCOUNT)]); -}; - -export const useSelectTokenTracking = () => { - return useTracking(track, [...Object.values(TrackEvent.SELECT_TOKEN)]); -}; - -export const useConnectWalletTracking = () => { - return useTracking(track, [ - TrackEvent.CONNECT_WALLET_CLICK, - TrackEvent.CONNECT_ETHEREUM_WALLET_CLICK, - TrackEvent.CONNECT_STARKNET_WALLET_CLICK - ]); -}; - -export const useFaqTracking = () => { - return useTracking(track, TrackEvent.FAQ_SCREEN); -}; - -export const useDiscordTabTracking = () => { - return useTracking(track, TrackEvent.DISCORD_TAB_CLICK); -}; diff --git a/src/hooks/useVars.js b/src/hooks/useVars.js deleted file mode 100644 index 4d28a534..00000000 --- a/src/hooks/useVars.js +++ /dev/null @@ -1,5 +0,0 @@ -import {useVarsGeneric} from '@starkware-industries/commons-js-hooks'; - -import vars from '../styles/variables.module.scss'; - -export const useVars = () => useVarsGeneric(vars); diff --git a/src/hooks/useWalletHandlerProvider.js b/src/hooks/useWalletHandlerProvider.js deleted file mode 100644 index 8db4a862..00000000 --- a/src/hooks/useWalletHandlerProvider.js +++ /dev/null @@ -1,38 +0,0 @@ -import {NetworkType} from '@starkware-industries/commons-js-enums'; -import {useMemo} from 'react'; - -import Wallets from '../config/wallets'; -import {GetStarknetWallet, MetaMask} from '../wallets'; -import {WalletHandler} from '../wallets/wallet-handler'; - -const configMap = { - [NetworkType.L1]: { - wallets: Wallets.L1, - registry: { - metamask: MetaMask - } - }, - [NetworkType.L2]: { - wallets: Wallets.L2, - registry: { - gsw: GetStarknetWallet - } - } -}; - -export const useWalletHandlerProvider = network => { - return useMemo(() => { - const {wallets, registry} = configMap[network]; - - return wallets - .map(walletConfig => { - const {id} = walletConfig; - const WalletHandler = registry[id]; - if (WalletHandler) { - return new WalletHandler(walletConfig); - } - return null; - }) - .filter(walletHandler => walletHandler instanceof WalletHandler); - }, [network]); -}; diff --git a/src/index.js b/src/index.js deleted file mode 100644 index 73bebf1f..00000000 --- a/src/index.js +++ /dev/null @@ -1,41 +0,0 @@ -import splitbee from '@splitbee/web'; -import {ChainType} from '@starkware-industries/commons-js-enums'; -import { - getLogger, - getUrlParameter, - printPackageInfo, - setLogLevel -} from '@starkware-industries/commons-js-utils'; -import React from 'react'; -import ReactDOM from 'react-dom'; -import {BrowserRouter} from 'react-router-dom'; - -import {App} from './App'; -import {ModalWrapper} from './components/UI'; -import {ENV, SUPPORTED_L1_CHAIN_ID} from './config/envs'; -import './index.scss'; -import {AppProviders} from './providers'; - -printPackageInfo(process.env.REACT_APP_NAME, process.env.REACT_APP_VERSION, '#734d7e'); - -if (ENV !== 'development') { - splitbee.init(); -} - -if (ENV === 'development' || getUrlParameter('debugApp')) { - setLogLevel(getLogger().DEBUG); -} - -document.title += `StarkGate ${ - SUPPORTED_L1_CHAIN_ID === ChainType.L1.GOERLI ? 'Goerli' : '' -} Alpha`; - -ReactDOM.render( - - - - - - , - document.getElementById('root') -); diff --git a/src/index.scss b/src/index.scss deleted file mode 100644 index 35673b26..00000000 --- a/src/index.scss +++ /dev/null @@ -1,114 +0,0 @@ -@import './styles/variables.module'; -@import './styles/colors.module'; -@import './styles/fonts.module'; - -@font-face { - font-family: Inter; - font-weight: 100; - font-style: normal; - src: url('assets/fonts/Inter/Inter-Thin.ttf') format('truetype'); -} - -@font-face { - font-family: Inter; - font-weight: 200; - font-style: normal; - src: url('assets/fonts/Inter/Inter-ExtraLight.ttf') format('truetype'); -} - -@font-face { - font-family: Inter; - font-weight: 300; - font-style: normal; - src: url('assets/fonts/Inter/Inter-Light.ttf') format('truetype'); -} - -@font-face { - font-family: Inter; - font-weight: 400; - font-style: normal; - src: url('assets/fonts/Inter/Inter-Regular.ttf') format('truetype'); -} - -@font-face { - font-family: Inter; - font-weight: 500; - font-style: normal; - src: url('assets/fonts/Inter/Inter-Medium.ttf') format('truetype'); -} - -@font-face { - font-family: Inter; - font-weight: 600; - font-style: normal; - src: url('assets/fonts/Inter/Inter-SemiBold.ttf') format('truetype'); -} - -@font-face { - font-family: Inter; - font-weight: 700; - font-style: normal; - src: url('assets/fonts/Inter/Inter-Bold.ttf') format('truetype'); -} - -@font-face { - font-family: Inter; - font-weight: 800; - font-style: normal; - src: url('assets/fonts/Inter/Inter-ExtraBold.ttf') format('truetype'); -} - -html, -body { - padding: 0; - margin: 0; - height: 100%; - width: 100%; - font-family: $--primary-font; - background-color: $--color-indigo; - transition: 0.3s; - scrollbar-color: $--color-ube transparent; -} - -.center { - top: 50%; - left: 50%; - position: absolute; - transform: translate(-50%, -50%); -} - -.row { - display: flex; - align-items: center; -} - -::-webkit-scrollbar-track { - border-radius: 7px; - box-shadow: inset 0 0 30px $--color-space-cadet; -} - -::-webkit-scrollbar-thumb { - border-radius: 7px; - background: $--color-ube; -} - -::-webkit-scrollbar-corner { - background: transparent; -} - -::-webkit-scrollbar { - max-width: 4px; - max-height: 7px; -} - -.MuiLinearProgress-root { - background-color: rgba($--color-orange-soda, 0.3) !important; - - .MuiLinearProgress-bar { - background-color: $--color-orange-soda !important; - } -} - -.MuiCircularProgress-root { - color: $--color-orange-soda !important; -} diff --git a/src/providers/BlockHashProvider/BlockHashProvider.js b/src/providers/BlockHashProvider/BlockHashProvider.js deleted file mode 100644 index 9b271b19..00000000 --- a/src/providers/BlockHashProvider/BlockHashProvider.js +++ /dev/null @@ -1,43 +0,0 @@ -import {useLogger} from '@starkware-industries/commons-js-hooks'; -import {promiseHandler} from '@starkware-industries/commons-js-utils'; -import {getStarknet} from 'get-starknet'; -import PropTypes from 'prop-types'; -import React, {useCallback, useState} from 'react'; - -import {useAccountChange, useEnvs} from '../../hooks'; -import {BlockHashContext} from './block-hash-context'; - -export const BlockHashProvider = ({children}) => { - const logger = useLogger(BlockHashProvider.displayName); - const [blockHash, setBlockHash] = useState(''); - const {POLL_BLOCK_NUMBER_INTERVAL} = useEnvs(); - - const fetchBlockHash = useCallback(async () => { - const [response] = await promiseHandler(getStarknet().provider.getBlock()); - if (response) { - setBlockHash(response.block_hash); - } - }, []); - - useAccountChange(accountHash => { - if (accountHash) { - logger.log('Starting block hash fetching'); - fetchBlockHash(); - const intervalId = setInterval(() => { - fetchBlockHash(); - }, POLL_BLOCK_NUMBER_INTERVAL); - return () => { - logger.log('Stopping block hash fetching'); - clearInterval(intervalId); - }; - } - }); - - return {children}; -}; - -BlockHashProvider.displayName = 'BlockHashProvider'; - -BlockHashProvider.propTypes = { - children: PropTypes.oneOfType([PropTypes.object, PropTypes.array]) -}; diff --git a/src/providers/BlockHashProvider/block-hash-context.js b/src/providers/BlockHashProvider/block-hash-context.js deleted file mode 100644 index 3a03db2a..00000000 --- a/src/providers/BlockHashProvider/block-hash-context.js +++ /dev/null @@ -1,3 +0,0 @@ -import {createContext} from 'react'; - -export const BlockHashContext = createContext(undefined); diff --git a/src/providers/BlockHashProvider/block-hash-hooks.js b/src/providers/BlockHashProvider/block-hash-hooks.js deleted file mode 100644 index 4a9e7b8e..00000000 --- a/src/providers/BlockHashProvider/block-hash-hooks.js +++ /dev/null @@ -1,5 +0,0 @@ -import {useContext} from 'react'; - -import {BlockHashContext} from './block-hash-context'; - -export const useBlockHash = () => useContext(BlockHashContext); diff --git a/src/providers/BlockHashProvider/index.js b/src/providers/BlockHashProvider/index.js deleted file mode 100644 index cf3b1ccf..00000000 --- a/src/providers/BlockHashProvider/index.js +++ /dev/null @@ -1,3 +0,0 @@ -export * from './block-hash-context'; -export * from './block-hash-hooks'; -export * from './BlockHashProvider'; diff --git a/src/providers/TransfersLogProvider/TransfersLogProvider.js b/src/providers/TransfersLogProvider/TransfersLogProvider.js deleted file mode 100644 index 48b428c7..00000000 --- a/src/providers/TransfersLogProvider/TransfersLogProvider.js +++ /dev/null @@ -1,204 +0,0 @@ -import { - EventName, - isCompleted, - isConsumed, - SelectorName, - TransactionHashPrefix -} from '@starkware-industries/commons-js-enums'; -import {useLogger} from '@starkware-industries/commons-js-hooks'; -import { - getPastEvents, - getStorageItem, - getTransactionHash, - promiseHandler, - setStorageItem -} from '@starkware-industries/commons-js-utils'; -import {getStarknet} from 'get-starknet'; -import PropTypes from 'prop-types'; -import React, {useEffect, useReducer} from 'react'; -import {hash} from 'starknet'; -import useDeepCompareEffect from 'use-deep-compare-effect'; - -import {useAccountChange, useEnvs, useStarknetContract} from '../../hooks'; -import {useBlockHash} from '../BlockHashProvider'; -import {useTokens} from '../TokensProvider'; -import {useAccountHash, useL2Wallet} from '../WalletsProvider'; -import {TransfersLogContext} from './transfers-log-context'; -import {actions, initialState, reducer} from './transfers-log-reducer'; - -export const TransfersLogProvider = ({children}) => { - const [transfers, dispatch] = useReducer(reducer, initialState); - const {LOCAL_STORAGE_TRANSFERS_LOG_KEY} = useEnvs(); - const logger = useLogger(TransfersLogProvider.displayName); - const blockHash = useBlockHash(); - const {updateTokenBalance} = useTokens(); - const {chainId: chainIdL2} = useL2Wallet(); - const starknetContract = useStarknetContract(); - const accountHash = useAccountHash(); - - useAccountChange(accountHash => { - if (accountHash) { - const storedTransfers = getTransfersFromStorage(); - logger.log('Extract transfers from local storage', storedTransfers); - setTransfers(storedTransfers); - } else { - resetTransfers(); - } - }); - - useDeepCompareEffect(() => { - if (transfers.length > 0) { - logger.log('Transfers changed, save updated transfers to local storage', transfers); - saveTransfersToStorage(transfers); - } - }, [transfers]); - - useEffect(() => { - const checkTransfers = async () => { - logger.log('Block hash updated. Checking transfers...', {blockHash}); - if (!blockHash) { - return; - } - const newTransfers = []; - for (const transfer of transfers) { - const {l2hash} = transfer; - const newTransfer = await (l2hash - ? checkTransaction(transfer) - : calcL2TransactionHash(transfer)); - if (newTransfer) { - newTransfers.push(newTransfer); - } - } - if (newTransfers.length) { - logger.log('Following transfers updated', newTransfers); - updateTransfers(newTransfers); - } - }; - - blockHash && checkTransfers(); - }, [blockHash]); - - const checkTransaction = async transfer => { - if (!(isCompleted(transfer.status) || transfer.lastChecked === blockHash)) { - logger.log(`Checking tx status ${transfer.l2hash}`); - const [{tx_status}, error] = await promiseHandler( - getStarknet().provider.getTransactionStatus(transfer.l2hash) - ); - if (!error) { - if (transfer.status !== tx_status) { - logger.log(`Status changed from ${transfer.status}->${tx_status}`); - if (isConsumed(tx_status)) { - updateTokenBalance(transfer.symbol); - } - } else { - logger.log(`Status is still ${tx_status}`); - } - return { - ...transfer, - status: tx_status, - lastChecked: blockHash - }; - } - } - }; - - const getMessageToL2 = async depositEvent => { - logger.log('Getting L2 message for deposit event', {depositEvent}); - const {blockNumber, transactionHash} = depositEvent; - const [pastEvents, error] = await promiseHandler( - getPastEvents({ - contract: starknetContract, - eventName: EventName.L1.LOG_MESSAGE_TO_L2, - filter: { - fromAddress: depositEvent.address, - selector: hash.getSelectorFromName(SelectorName.HANDLE_DEPOSIT) - }, - options: { - fromBlock: blockNumber - 1, - toBlock: 'latest' - } - }) - ); - if (error) { - return null; - } - return pastEvents.find(e => e.transactionHash === transactionHash); - }; - - const calcL2TransactionHash = async transfer => { - const messageToL2Event = await getMessageToL2(transfer.event); - if (messageToL2Event) { - logger.log('Found L2 message. calculating L2 transaction hash...', {messageToL2Event}); - const {toAddress, fromAddress, selector, payload, nonce} = messageToL2Event.returnValues; - delete transfer.event; - return { - ...transfer, - l2hash: getTransactionHash( - TransactionHashPrefix.L1_HANDLER, - fromAddress, - toAddress, - selector, - payload, - chainIdL2, - nonce - ) - }; - } - return transfer; - }; - - const getTransfersFromStorage = () => { - const storedTransfers = getStorageItem(LOCAL_STORAGE_TRANSFERS_LOG_KEY) || {}; - return storedTransfers[accountHash] || []; - }; - - const saveTransfersToStorage = transfers => { - const storedTransfers = getStorageItem(LOCAL_STORAGE_TRANSFERS_LOG_KEY) || {}; - const updatedTransfers = { - ...storedTransfers, - [accountHash]: transfers - }; - setStorageItem(LOCAL_STORAGE_TRANSFERS_LOG_KEY, updatedTransfers); - }; - - const updateTransfers = updatedTransfers => { - dispatch({ - type: actions.UPDATE_TRANSFERS, - updatedTransfers: Array.isArray(updatedTransfers) ? updatedTransfers : [updatedTransfers] - }); - }; - - const addTransfer = newTransfer => { - dispatch({ - type: actions.ADD_TRANSFER, - newTransfer - }); - }; - - const setTransfers = transfers => { - dispatch({ - type: actions.SET_TRANSFERS, - transfers - }); - }; - - const resetTransfers = () => { - dispatch({ - type: actions.RESET_TRANSFERS - }); - }; - - const context = { - transfers, - addTransfer, - updateTransfers - }; - - return {children}; -}; - -TransfersLogProvider.displayName = 'TransfersLogProvider'; - -TransfersLogProvider.propTypes = { - children: PropTypes.oneOfType([PropTypes.object, PropTypes.array]) -}; diff --git a/src/providers/TransfersLogProvider/index.js b/src/providers/TransfersLogProvider/index.js deleted file mode 100644 index 1822cd09..00000000 --- a/src/providers/TransfersLogProvider/index.js +++ /dev/null @@ -1,4 +0,0 @@ -export * from './transfers-log-reducer'; -export * from './transfers-log-context'; -export * from './transfers-log-hooks'; -export * from './TransfersLogProvider'; diff --git a/src/providers/TransfersLogProvider/transfers-log-context.js b/src/providers/TransfersLogProvider/transfers-log-context.js deleted file mode 100644 index 5bdf658b..00000000 --- a/src/providers/TransfersLogProvider/transfers-log-context.js +++ /dev/null @@ -1,7 +0,0 @@ -import {createContext} from 'react'; - -export const TransfersLogContext = createContext({ - transfers: [], - addTransfer: newTransfer => newTransfer, - updateTransfers: updatedTransfers => updatedTransfers -}); diff --git a/src/providers/TransfersLogProvider/transfers-log-hooks.js b/src/providers/TransfersLogProvider/transfers-log-hooks.js deleted file mode 100644 index 2d6d3298..00000000 --- a/src/providers/TransfersLogProvider/transfers-log-hooks.js +++ /dev/null @@ -1,13 +0,0 @@ -import {useContext, useMemo} from 'react'; - -import {TransfersLogContext} from './transfers-log-context'; - -export const useTransfersLog = () => useContext(TransfersLogContext); - -export const useAccountTransfersLog = account => { - const {transfers} = useTransfersLog(); - return useMemo( - () => transfers.filter(tx => tx.sender === account || tx.recipient === account), - [account, transfers] - ); -}; diff --git a/src/providers/TransfersLogProvider/transfers-log-reducer.js b/src/providers/TransfersLogProvider/transfers-log-reducer.js deleted file mode 100644 index 1eb09ad1..00000000 --- a/src/providers/TransfersLogProvider/transfers-log-reducer.js +++ /dev/null @@ -1,41 +0,0 @@ -import {generateId} from '@starkware-industries/commons-js-utils'; - -export const actions = { - SET_TRANSFERS: 'TransfersLog/SET_TRANSFERS', - ADD_TRANSFER: 'TransfersLog/ADD_TRANSFER', - UPDATE_TRANSFERS: 'TransfersLog/UPDATE_TRANSFERS', - RESET_TRANSFERS: 'TransfersLog/RESET_TRANSFERS' -}; - -export const initialState = []; - -export const reducer = (state, action) => { - switch (action.type) { - case actions.SET_TRANSFERS: - return action.transfers; - - case actions.ADD_TRANSFER: { - const {newTransfer} = action; - return [{id: generateId(), timestamp: new Date().getTime(), ...newTransfer}, ...state]; - } - - case actions.UPDATE_TRANSFERS: { - const {updatedTransfers} = action; - const transfers = [...state]; - updatedTransfers.forEach(updatedTransfer => { - const index = transfers.findIndex(t => t.id === updatedTransfer.id); - if (index > -1) { - transfers[index] = updatedTransfer; - } - }); - return transfers; - } - - case actions.RESET_TRANSFERS: { - return initialState; - } - - default: - return state; - } -}; diff --git a/src/wallets/get-starknet-wallet.js b/src/wallets/get-starknet-wallet.js deleted file mode 100644 index 7691d21a..00000000 --- a/src/wallets/get-starknet-wallet.js +++ /dev/null @@ -1,18 +0,0 @@ -import {getStarknet} from '@starkware-industries/commons-js-libs/get-starknet'; - -import {WalletHandler} from './wallet-handler'; - -export class GetStarknetWallet extends WalletHandler { - isInstalled() { - const version = window.starknet?.version || window.starknet_braavos?.version; - return version && version !== 'uninstalled'; - } - - install() { - if (this.isBrowserSupported()) { - return getStarknet().enable({ - showModal: true - }); - } - } -} diff --git a/src/wallets/index.js b/src/wallets/index.js deleted file mode 100644 index 18230005..00000000 --- a/src/wallets/index.js +++ /dev/null @@ -1,2 +0,0 @@ -export * from './get-starknet-wallet'; -export * from './metamask'; diff --git a/src/wallets/metamask.js b/src/wallets/metamask.js deleted file mode 100644 index 4f3ab3a9..00000000 --- a/src/wallets/metamask.js +++ /dev/null @@ -1,20 +0,0 @@ -import MetaMaskOnboarding from '@starkware-industries/commons-js-libs/metamask-onboarding'; - -import {WalletHandler} from './wallet-handler'; - -export class MetaMask extends WalletHandler { - constructor(config) { - super(config); - this.onboarding = new MetaMaskOnboarding(); - } - - isInstalled() { - return Boolean(window.ethereum && window.ethereum.isMetaMask); - } - - install() { - if (this.isBrowserSupported()) { - return this.onboarding.startOnboarding(); - } - } -} diff --git a/src/wallets/wallet-handler.js b/src/wallets/wallet-handler.js deleted file mode 100644 index 74110cdb..00000000 --- a/src/wallets/wallet-handler.js +++ /dev/null @@ -1,23 +0,0 @@ -import {getPropertyPath, isChrome, isFirefox} from '@starkware-industries/commons-js-utils'; - -import translations from '../config/translations'; - -export class WalletHandler { - constructor(config) { - this.config = config; - } - - isBrowserSupported() { - const isBrowserSupported = isChrome() || isFirefox(); - if (!isBrowserSupported) { - throw new Error(getPropertyPath(translations, 'modals.login.unsupportedBrowserTxt')); - } - return true; - } - - isInstalled() { - return false; - } - - install() {} -} diff --git a/turbo.json b/turbo.json new file mode 100644 index 00000000..26223e9e --- /dev/null +++ b/turbo.json @@ -0,0 +1 @@ +{"globalEnv":["npm_package_name","npm_package_version"],"pipeline":{"@starkgate/web#lint":{"outputs":[],"cache":true,"dependsOn":[],"inputs":[],"outputMode":"full","env":["NETLIFY"],"persistent":false},"build":{"outputs":["dist/**"],"cache":true,"dependsOn":["^build","prebuild"],"inputs":[],"outputMode":"full","env":[],"persistent":false},"clean":{"outputs":[],"cache":true,"dependsOn":[],"inputs":[],"outputMode":"full","env":[],"persistent":false},"dev":{"outputs":[],"cache":false,"dependsOn":[],"inputs":[],"outputMode":"full","env":[],"persistent":true},"format":{"outputs":[],"cache":true,"dependsOn":[],"inputs":[],"outputMode":"full","env":[],"persistent":false},"lint":{"outputs":[],"cache":true,"dependsOn":["^lint"],"inputs":[],"outputMode":"full","env":[],"persistent":false},"pack":{"outputs":[],"cache":true,"dependsOn":["build","lint","test"],"inputs":[],"outputMode":"full","env":[],"persistent":false},"prebuild":{"outputs":[],"cache":true,"dependsOn":[],"inputs":[],"outputMode":"full","env":[],"persistent":false},"test":{"outputs":[],"cache":true,"dependsOn":["build"],"inputs":[],"outputMode":"full","env":[],"persistent":false}},"remoteCache":{}} \ No newline at end of file diff --git a/workspace/apps/starkgate/shared/.eslintignore b/workspace/apps/starkgate/shared/.eslintignore new file mode 100644 index 00000000..de4d1f00 --- /dev/null +++ b/workspace/apps/starkgate/shared/.eslintignore @@ -0,0 +1,2 @@ +dist +node_modules diff --git a/workspace/apps/starkgate/shared/.eslintrc.cjs b/workspace/apps/starkgate/shared/.eslintrc.cjs new file mode 100644 index 00000000..c38eb59d --- /dev/null +++ b/workspace/apps/starkgate/shared/.eslintrc.cjs @@ -0,0 +1,4 @@ +module.exports = { + root: true, + extends: ['ts'] +}; diff --git a/workspace/apps/starkgate/shared/.gitignore b/workspace/apps/starkgate/shared/.gitignore new file mode 100644 index 00000000..f06235c4 --- /dev/null +++ b/workspace/apps/starkgate/shared/.gitignore @@ -0,0 +1,2 @@ +node_modules +dist diff --git a/workspace/apps/starkgate/shared/.prettierignore b/workspace/apps/starkgate/shared/.prettierignore new file mode 100644 index 00000000..a3414d0f --- /dev/null +++ b/workspace/apps/starkgate/shared/.prettierignore @@ -0,0 +1,2 @@ +dist +CHANGELOG.md diff --git a/workspace/apps/starkgate/shared/package.json b/workspace/apps/starkgate/shared/package.json new file mode 100644 index 00000000..beeb9094 --- /dev/null +++ b/workspace/apps/starkgate/shared/package.json @@ -0,0 +1,42 @@ +{ + "name": "@starkgate/shared", + "version": "0.0.0", + "private": true, + "type": "module", + "exports": { + ".": { + "require": "./dist/index.cjs", + "import": "./dist/index.js" + } + }, + "types": "./dist/types/index.d.ts", + "files": [ + "dist" + ], + "scripts": { + "prebuild": "pnpm run clean", + "build": "pnpm run prebuild && vite build", + "clean": "rm -rf ./dist", + "dev": "pnpm run prebuild && vite build --watch --mode development", + "docs:generate": "typedoc", + "docs:watch": "typedoc --watch", + "format": "sort-package-json && prettier --write \"**/*.+(ts|js|cjs|json|md|html|yml)\"", + "lint": "eslint .", + "lint:fix": "eslint --fix .", + "test": "echo \"No tests found\"" + }, + "devDependencies": { + "@starkware-webapps/enums": "workspace:*", + "@starkware-webapps/tsconfig": "workspace:*", + "eslint": "^8.15.0", + "eslint-config-ts": "workspace:*", + "typedoc": "^0.23.10", + "typedoc-plugin-markdown": "^3.13.4", + "typescript": "^4.7.3", + "vite": "^4.1.0", + "vite-plugin-dts": "^2.0.1" + }, + "peerDependencies": { + "@starkware-webapps/enums": "workspace:*" + } +} diff --git a/workspace/apps/starkgate/shared/src/index.ts b/workspace/apps/starkgate/shared/src/index.ts new file mode 100644 index 00000000..3e2e3a23 --- /dev/null +++ b/workspace/apps/starkgate/shared/src/index.ts @@ -0,0 +1,2 @@ +export * from './types'; +export * from './tokens'; diff --git a/src/config/tokens.js b/workspace/apps/starkgate/shared/src/tokens.ts similarity index 71% rename from src/config/tokens.js rename to workspace/apps/starkgate/shared/src/tokens.ts index 8a855fd3..75fda63d 100644 --- a/src/config/tokens.js +++ b/workspace/apps/starkgate/shared/src/tokens.ts @@ -1,6 +1,6 @@ -import {ChainType} from '@starkware-industries/commons-js-enums'; +import {ChainType} from '@starkware-webapps/enums'; -export default { +export const Tokens = { L1: { ETH: { name: 'Ether', @@ -9,7 +9,8 @@ export default { bridgeAddress: { [ChainType.L1.MAIN]: '0xae0Ee0A63A2cE6BaeEFFE56e7714FB4EFE48D419', [ChainType.L1.GOERLI]: '0xc3511006C04EF1d78af4C8E0e74Ec18A6E64Ff9e' - } + }, + tokenAddress: null }, WBTC: { name: 'Wrapped BTC', @@ -63,6 +64,32 @@ export default { [ChainType.L1.GOERLI]: '0x11fE4B6AE13d2a6055C8D9cF65c55bac32B5d844' } }, + rETH: { + name: 'Rocket Pool ETH', + symbol: 'rETH', + decimals: 18, + bridgeAddress: { + [ChainType.L1.MAIN]: '', + [ChainType.L1.GOERLI]: '0xD2ef821C56B20a7451dbbEd1ec003De6C44F8dC0' + }, + tokenAddress: { + [ChainType.L1.MAIN]: '', + [ChainType.L1.GOERLI]: '0x178E141a0E3b34152f73Ff610437A7bf9B83267A' + } + }, + wstETH: { + name: 'Wrapped liquid staked Ether 2.0', + symbol: 'wstETH', + decimals: 18, + bridgeAddress: { + [ChainType.L1.MAIN]: '', + [ChainType.L1.GOERLI]: '0x190c98506a5396A30CA759A139F3Fb59EF519A5D' + }, + tokenAddress: { + [ChainType.L1.MAIN]: '', + [ChainType.L1.GOERLI]: '0x6320cD32aA674d2898A68ec82e869385Fc5f7E2f' + } + }, SLF: { name: 'SelfService', symbol: 'SLF', @@ -82,6 +109,10 @@ export default { name: 'Ether', symbol: 'ETH', decimals: 18, + autoWithdrawal: { + [ChainType.L2.MAIN]: true, + [ChainType.L2.GOERLI]: true + }, bridgeAddress: { [ChainType.L2.MAIN]: '0x073314940630fd6dcda0d772d4c972c4e0a9946bef9dabf4ef84eda8ef542b82', [ChainType.L2.GOERLI]: '0x073314940630fd6dcda0d772d4c972c4e0a9946bef9dabf4ef84eda8ef542b82' @@ -95,6 +126,10 @@ export default { name: 'Wrapped BTC', symbol: 'WBTC', decimals: 8, + autoWithdrawal: { + [ChainType.L2.MAIN]: true, + [ChainType.L2.GOERLI]: false + }, bridgeAddress: { [ChainType.L2.MAIN]: '0x07aeec4870975311a7396069033796b61cd66ed49d22a786cba12a8d76717302', [ChainType.L2.GOERLI]: '0x72eeb90833bae233a9585f2fa9afc99c187f0a3a82693becd6a4d700b37fc6b' @@ -108,6 +143,10 @@ export default { name: 'USD Coin', symbol: 'USDC', decimals: 6, + autoWithdrawal: { + [ChainType.L2.MAIN]: true, + [ChainType.L2.GOERLI]: false + }, bridgeAddress: { [ChainType.L2.MAIN]: '0x05cd48fccbfd8aa2773fe22c217e808319ffcc1c5a6a463f7d8fa2da48218196', [ChainType.L2.GOERLI]: '0x001d5b64feabc8ac7c839753994f469704c6fabdd45c8fe6d26ed57b5eb79057' @@ -121,6 +160,10 @@ export default { name: 'Tether USD', symbol: 'USDT', decimals: 6, + autoWithdrawal: { + [ChainType.L2.MAIN]: true, + [ChainType.L2.GOERLI]: false + }, bridgeAddress: { [ChainType.L2.MAIN]: '0x074761a8d48ce002963002becc6d9c3dd8a2a05b1075d55e5967f42296f16bd0', [ChainType.L2.GOERLI]: '0x71d54658ca3c6ccd84ff958adb7498b2e71ba008e29b643983221ed2bd71b69' @@ -134,6 +177,7 @@ export default { name: 'Dai Stablecoin', symbol: 'DAI', decimals: 18, + fastWithdrawal: true, bridgeAddress: { [ChainType.L2.MAIN]: '0x075ac198e734e289a6892baa8dd14b21095f13bf8401900f5349d5569c3f6e60', [ChainType.L2.GOERLI]: '0x057b7fe4e59d295de5e7955c373023514ede5b972e872e9aa5dcdf563f5cfacb' @@ -143,6 +187,36 @@ export default { [ChainType.L2.GOERLI]: '0x03e85bfbb8e2a42b7bead9e88e9a1b19dbccf661471061807292120462396ec9' } }, + rETH: { + name: 'Rocket Pool ETH', + symbol: 'rETH', + decimals: 18, + autoWithdrawal: { + [ChainType.L2.MAIN]: false, + [ChainType.L2.GOERLI]: true + }, + bridgeAddress: { + [ChainType.L2.MAIN]: '', + [ChainType.L2.GOERLI]: '0x00214e168720c6eed858066bea070afa828512e83edcfc28846f0e87221f77f6' + }, + tokenAddress: { + [ChainType.L2.MAIN]: '', + [ChainType.L2.GOERLI]: '0x002133188109385fedaac0b1bf9de1134e271b88efcd21e2ea0dac460639fbe2' + } + }, + wstETH: { + name: 'Wrapped liquid staked Ether 2.0', + symbol: 'wstETH', + decimals: 18, + bridgeAddress: { + [ChainType.L2.MAIN]: '', + [ChainType.L2.GOERLI]: '0x0399a6011b666888d647665fd65d6dcc7c2690c72d4c4454cae987f19f6ef609' + }, + tokenAddress: { + [ChainType.L2.MAIN]: '', + [ChainType.L2.GOERLI]: '0x0335bc6e1cf6d9527da4f8044c505906ad6728aeeddfba8d7000b01b32ffe66b' + } + }, SLF: { name: 'SelfService', symbol: 'SLF', diff --git a/workspace/apps/starkgate/shared/src/types.ts b/workspace/apps/starkgate/shared/src/types.ts new file mode 100644 index 00000000..ae61891d --- /dev/null +++ b/workspace/apps/starkgate/shared/src/types.ts @@ -0,0 +1,56 @@ +import {TransactionStatus, isOnChain} from '@starkware-webapps/enums'; + +export enum TransferType { + DEPOSIT = 'DEPOSIT', + WITHDRAWAL = 'WITHDRAWAL' +} + +export type EthereumAddress = string; +export type StarknetAddress = string; + +export type Hash = string; + +export enum DepositTransferStatus { + INITIATED = 'INITIATED', + COMPLETED = 'COMPLETED' +} + +export enum WithdrawalTransferStatus { + INITIATED = 'INITIATED', + PENDING = 'PENDING', + COMPLETED = 'COMPLETED' +} + +export type TransferLog = { + type: TransferType; + status: DepositTransferStatus | WithdrawalTransferStatus; + symbol: string; + name: string; + amount: string; + fullAmount: string; + l1Address: EthereumAddress; + l1TxHash: Hash; + l1TxTimestamp: number; + l2Address: StarknetAddress; + l2TxHash: Hash; + l2TxStatus: TransactionStatus; + l2TxTimestamp: number; + fastWithdrawal?: boolean; + customData?: object; +}; + +export const isDeposit = (type: TransferType) => type === TransferType.DEPOSIT; +export const isWithdrawal = (type: TransferType) => type === TransferType.WITHDRAWAL; +export const isPendingWithdrawal = ({ + type, + l1TxHash, + l2TxStatus, + fastWithdrawal, + customData +}: TransferLog) => { + return ( + isWithdrawal(type) && + !l1TxHash && + ((!fastWithdrawal && isOnChain(l2TxStatus)) || (fastWithdrawal && customData)) + ); +}; diff --git a/workspace/apps/starkgate/shared/tsconfig.json b/workspace/apps/starkgate/shared/tsconfig.json new file mode 100644 index 00000000..6c526268 --- /dev/null +++ b/workspace/apps/starkgate/shared/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "@starkware-webapps/tsconfig/base.json", + "compilerOptions": { + "outDir": "dist" + }, + "include": ["src"], + "exclude": ["dist", "node_modules"], + "references": [{"path": "./tsconfig.node.json"}] +} diff --git a/workspace/apps/starkgate/shared/tsconfig.node.json b/workspace/apps/starkgate/shared/tsconfig.node.json new file mode 100644 index 00000000..2f1c89ad --- /dev/null +++ b/workspace/apps/starkgate/shared/tsconfig.node.json @@ -0,0 +1,7 @@ +{ + "extends": "@starkware-webapps/tsconfig/node.json", + "compilerOptions": { + "module": "ESNext" + }, + "include": ["vite.config.ts"] +} diff --git a/workspace/apps/starkgate/shared/typedoc.json b/workspace/apps/starkgate/shared/typedoc.json new file mode 100644 index 00000000..447cf6c3 --- /dev/null +++ b/workspace/apps/starkgate/shared/typedoc.json @@ -0,0 +1,5 @@ +{ + "entryPoints": ["./src/index.ts"], + "name": "@starkgate/shared", + "includeVersion": true +} diff --git a/workspace/apps/starkgate/shared/vite.config.ts b/workspace/apps/starkgate/shared/vite.config.ts new file mode 100644 index 00000000..4bb8c2e3 --- /dev/null +++ b/workspace/apps/starkgate/shared/vite.config.ts @@ -0,0 +1,30 @@ +import {resolve} from 'path'; +import {defineConfig} from 'vite'; +import dts from 'vite-plugin-dts'; + +type ViteConfigInput = { + mode: string; +}; + +export default ({mode}: ViteConfigInput) => { + const prodMode = mode === 'production'; + + return defineConfig({ + plugins: [ + dts({ + insertTypesEntry: true, + outputDir: 'dist/types' + }) + ], + build: { + lib: { + entry: resolve(__dirname, 'src/index.ts'), + name: 'StarkGateShared', + formats: ['es', 'cjs'], + fileName: 'index' + }, + sourcemap: !prodMode, + copyPublicDir: false + } + }); +}; diff --git a/workspace/apps/starkgate/web/.env b/workspace/apps/starkgate/web/.env new file mode 100644 index 00000000..66e2c575 --- /dev/null +++ b/workspace/apps/starkgate/web/.env @@ -0,0 +1,3 @@ +VITE_APP_LOCAL_STORAGE_ACCEPT_TERMS=STARKGATE_ACCEPT_TERMS +VITE_APP_SCREENING_SERVICE_NAME=screening +VITE_APP_TRANSFER_LOG_SERVICE_NAME=transfer-log diff --git a/workspace/apps/starkgate/web/.env.development b/workspace/apps/starkgate/web/.env.development new file mode 100644 index 00000000..df4ccbfe --- /dev/null +++ b/workspace/apps/starkgate/web/.env.development @@ -0,0 +1,20 @@ +VITE_APP_AUTO_CONNECT=true +VITE_APP_POLL_BLOCK_NUMBER_INTERVAL=20000 +VITE_APP_SUPPORTED_CHAIN_ID=5 +VITE_APP_STARKNET_CONTRACT_ADDRESS=0xde29d060D45901Fb19ED6C6e959EB22d8626708e +VITE_APP_ETHERSCAN_URL=https://goerli.etherscan.io +VITE_APP_VOYAGER_URL=https://goerli.voyager.online +VITE_APP_STARKSCAN_URL=https://testnet.starkscan.co +VITE_APP_SUPPORTED_TOKENS=ETH,WBTC,USDC,USDT,DAI,rETH,wstETH,SLF +VITE_APP_API_ENDPOINT_URL=http://localhost:{{service}}/api +VITE_APP_SCREENING_SERVICE_NAME=5301 +VITE_APP_TRANSFER_LOG_SERVICE_NAME=5302 +VITE_APP_DAI_TELEPORT_TARGET_DOMAIN=0x4554482d474f45522d41 +VITE_APP_DAI_TELEPORT_GATEWAY_CONTRACT_ADDRESS=0x078e1e7cc88114fe71be7433d1323782b4586c532a1868f072fc44ce9abf6714 +VITE_APP_TELEPORT_ORACLE_AUTH_CONTRACT_ADDRESS=0x29d292E0773E484dbcA8626F432985630175763b +VITE_APP_ATTESTATIONS_ORACLE_URL=https://current-stage-goerli-lair.chroniclelabs.org +VITE_APP_ENABLE_SCREENING=false +VITE_APP_GOOGLE_MEASURE_ID=G-R1591TLMVZ +VITE_APP_RELAYER_CONTRACT_ADDRESS=0x027f237537479fd27551379d1acc58f5448386a7094aac9b269e5d57aaf9d8c7 +VITE_APP_RELAYER_GAS_COST_URL=https://starkgate-testnet.spaceshard.io/v1/gas-cost +VITE_APP_ENABLE_AUTO_WITHDRAWAL=true diff --git a/.eslintignore b/workspace/apps/starkgate/web/.eslintignore similarity index 80% rename from .eslintignore rename to workspace/apps/starkgate/web/.eslintignore index 5ef44bff..73cf62a5 100644 --- a/.eslintignore +++ b/workspace/apps/starkgate/web/.eslintignore @@ -1,4 +1,4 @@ -build +dist node_modules *.css *.svg \ No newline at end of file diff --git a/workspace/apps/starkgate/web/.eslintrc.cjs b/workspace/apps/starkgate/web/.eslintrc.cjs new file mode 100644 index 00000000..92445854 --- /dev/null +++ b/workspace/apps/starkgate/web/.eslintrc.cjs @@ -0,0 +1,11 @@ +module.exports = { + root: true, + extends: ['react-custom'], + env: { + jest: true + }, + globals: { + APP_VERSION: true, + APP_NAME: true + } +}; diff --git a/workspace/apps/starkgate/web/.gitignore b/workspace/apps/starkgate/web/.gitignore new file mode 100644 index 00000000..0c31086f --- /dev/null +++ b/workspace/apps/starkgate/web/.gitignore @@ -0,0 +1,24 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# production +dist + +# misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* +.idea diff --git a/workspace/apps/starkgate/web/.prettierignore b/workspace/apps/starkgate/web/.prettierignore new file mode 100644 index 00000000..018acabd --- /dev/null +++ b/workspace/apps/starkgate/web/.prettierignore @@ -0,0 +1,3 @@ +dist +node_modules +CHANGELOG.md diff --git a/workspace/apps/starkgate/web/.stylelintignore b/workspace/apps/starkgate/web/.stylelintignore new file mode 100644 index 00000000..1521c8b7 --- /dev/null +++ b/workspace/apps/starkgate/web/.stylelintignore @@ -0,0 +1 @@ +dist diff --git a/.stylelintrc.js b/workspace/apps/starkgate/web/.stylelintrc.cjs similarity index 100% rename from .stylelintrc.js rename to workspace/apps/starkgate/web/.stylelintrc.cjs diff --git a/workspace/apps/starkgate/web/CHANGELOG.md b/workspace/apps/starkgate/web/CHANGELOG.md new file mode 100644 index 00000000..2768f7ee --- /dev/null +++ b/workspace/apps/starkgate/web/CHANGELOG.md @@ -0,0 +1,170 @@ +## 1.14.0 + +## 1.14.1 + +### Patch Changes + +- 392c6d4: Fixed an issue where the auto withdrawal got stuck + +### Minor Changes + +- 78670c0: Add an option to Auto withdraw ERC20 tokens from Starknet to Ethereum +- 028bc7a: Send analytics to both Google analytics and Splitbee +- 087239d: Add layerswap to bridging options + +### Patch Changes + +- d0953a4: Fixed issues with the blocked modal: + - The blocked modal appears only once (closing and reconnecting doesn’t trigger it again) + - The screening error gets raised twice - immediately and after the retry (from the second try to connect) + - The loading indication doesn't appear during the error retrying + +## 1.12.1-dev.0 + +### prerelease changes + +- screening using useQuery (#47) + +## 1.12.1-dev.1 + +### prerelease changes + +- dynamic icon using useQuery (#49) + +## 1.12.1-dev.2 + +### prerelease changes + +- staleTime to dynamic import (#57) + +## 1.12.1-dev.3 + +### prerelease changes + +- contact us tab (#58) + +## 1.12.1-dev.4 + +### prerelease changes + +- prettier isn't running for eslint (#64) + +## 1.12.1-dev.5 + +### prerelease changes + +- web3 utils signature (#65) + +## 1.12.1-dev.6 + +### prerelease changes + +- get-eligibility for eth and starknet (#70) + +## 1.12.1-dev.7 + +### prerelease changes + +- wallet login screen (#76) + +## 1.12.1-dev.8 + +### prerelease changes + +- remove compliance mail from blocked modal (#80) + +## 1.12.1-dev.9 + +### prerelease changes + +- add pnpm overrides to ethereumjs-abi peer dep (#85) + +## 1.12.1-dev.10 + +### prerelease changes + +- fetch eligibility from api (#84) + +## 1.12.1-dev.11 + +### prerelease changes + +- http-client, js-logger, slack-notifier packages (#102) + +## 1.12.1-dev.12 + +### prerelease changes + +- disable app for mobile devices (#89) + +## 1.12.1-dev.13 + +### prerelease changes + +- add new tokens to the UI (#112) + +## 1.12.1-dev.14 + +### prerelease changes + +- change "StarkNet" to "Starknet" (#116) + +## 1.12.1-dev.15 + +### prerelease changes + +- is hex change (#114) + +## 1.12.1-dev.16 + +### prerelease changes + +- update links in the terms page (#118) + +## 1.13.0-dev.17 + +### prerelease changes + +- bump package.json to 1.13 (#121) + +## 1.13.0-dev.18 + +### prerelease changes + +- export types and configs (starkex, eligibility) (#120) + +## 1.13.0-dev.19 + +### prerelease changes + +- import @ui style (#128) + +## 1.13.0-dev.20 + +### prerelease changes + +- v1.13 fixes before release (#130) + +## 1.13.0-dev.21 + +### prerelease changes + +- root level scripting and ports assignment (#134) + +## 1.13.0-dev.22 + +### prerelease changes + +- sometimes connecting to MetaMask is blocked (#137) + +## 1.13.0-dev.23 + +### prerelease changes + +- google analytics (#133) + +## 1.13.0-dev.24 + +### prerelease changes + +- google analytics (#139) diff --git a/CONTRIBUTING.md b/workspace/apps/starkgate/web/CONTRIBUTING.md similarity index 100% rename from CONTRIBUTING.md rename to workspace/apps/starkgate/web/CONTRIBUTING.md diff --git a/LICENSE b/workspace/apps/starkgate/web/LICENSE similarity index 100% rename from LICENSE rename to workspace/apps/starkgate/web/LICENSE diff --git a/README.md b/workspace/apps/starkgate/web/README.md similarity index 92% rename from README.md rename to workspace/apps/starkgate/web/README.md index 0810914c..1ae1b764 100644 --- a/README.md +++ b/workspace/apps/starkgate/web/README.md @@ -3,7 +3,7 @@

-

Token Bridge for StarkNet

+

Token Bridge for Starknet

@@ -17,8 +17,8 @@

-StarkNet is a permissionless decentralized Rollup operating as an L2 network over Ethereum.\ -The _StarkNet bridge_ allows users to transfer ERC20 tokens from Ethereum to StarkNet and vice versa. +Starknet is a permissionless decentralized Rollup operating as an L2 network over Ethereum.\ +The _Starknet bridge_ allows users to transfer ERC20 tokens from Ethereum to Starknet and vice versa. This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app). diff --git a/workspace/apps/starkgate/web/index.html b/workspace/apps/starkgate/web/index.html new file mode 100644 index 00000000..38ff56ac --- /dev/null +++ b/workspace/apps/starkgate/web/index.html @@ -0,0 +1,25 @@ + + + + + + + + + + + + + +
+ + + diff --git a/workspace/apps/starkgate/web/package.json b/workspace/apps/starkgate/web/package.json new file mode 100644 index 00000000..3ff7fd8e --- /dev/null +++ b/workspace/apps/starkgate/web/package.json @@ -0,0 +1,102 @@ +{ + "name": "@starkgate/web", + "version": "1.14.1", + "homepage": "./", + "type": "module", + "scripts": { + "prebuild": "pnpm run clean", + "build": "vite build", + "clean": "rm -rf ./dist", + "dev": "vite --port 5300", + "format": "pnpm sort-package-json && pnpm run '/^format:.*/'", + "format:prettier": "prettier --write **/*.{js,cjs,jsx,css,scss,yaml,yml,md}", + "format:scripts": "eslint --fix . --ext .js,.jsx,.ts,.tsx", + "format:styles": "stylelint --fix **/*.{css,scss}", + "lint": "pnpm run '/^lint:.*/'", + "lint:prettier": "prettier --check **/*.{js,cjs,jsx,css,scss}", + "lint:scripts": "eslint . --ext .js,.jsx,.ts,.tsx", + "lint:styles": "stylelint **/*.{css,scss}", + "preview": "vite preview", + "test": "echo \"No tests found\"" + }, + "browserslist": { + "production": [ + "chrome >= 67", + "edge >= 79", + "firefox >= 68", + "opera >= 54", + "safari >= 14" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + }, + "dependencies": { + "@emotion/react": "^11.8.2", + "@emotion/styled": "^11.8.1", + "@flyyer/use-googlefonts": "^0.4.2", + "@headlessui/react": "^1.5.0", + "@metamask/onboarding": "^1.0.1", + "@mui/material": "^5.5.3", + "@mui/styles": "^5.5.0", + "@splitbee/web": "^0.3.0", + "@starkgate/shared": "workspace:*", + "@starkware-webapps/enums": "workspace:*", + "@starkware-webapps/http-client": "workspace:*", + "@starkware-webapps/js-logger": "workspace:*", + "@starkware-webapps/ui": "workspace:*", + "@starkware-webapps/utils": "workspace:*", + "@starkware-webapps/utils-browser": "workspace:*", + "@starkware-webapps/web3-utils": "workspace:*", + "@tanstack/react-query": "^4.27.0", + "@tanstack/react-query-devtools": "^4.27.0", + "get-starknet": "^1.5.0", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-hot-toast": "^2.2.0", + "react-router": "^6.3.0", + "react-router-dom": "6", + "starknet": "^4.22.0", + "use-breakpoint": "^3.0.1", + "use-deep-compare-effect": "^1.8.1", + "use-wallet": "^0.13.6", + "web3": "^1.8.1" + }, + "devDependencies": { + "@babel/core": "^7.16.0", + "@starkware-webapps/tsconfig": "workspace:*", + "@types/react": "^17.0.53", + "@types/react-dom": "^17.0.19", + "@vitejs/plugin-react": "^3.1.0", + "eslint": "^8.15.0", + "eslint-config-react-custom": "workspace:*", + "postcss": "^8.4.21", + "prettier": "^2.8.4", + "prop-types": "^15.8.1", + "rollup-plugin-re": "^1.0.7", + "sass": "^1.58.3", + "stylelint": "^14.1.0", + "stylelint-config-css-modules": "^4.1.0", + "stylelint-config-prettier": "^9.0.3", + "stylelint-config-standard": "^24.0.0", + "stylelint-config-standard-scss": "^3.0.0", + "stylelint-prettier": "^2.0.0", + "stylelint-scss": "^4.0.0", + "typescript": "^4.7.3", + "vite": "^4.1.0", + "vite-plugin-dynamic-import": "^1.2.7", + "vite-plugin-html-env": "^1.2.7", + "vite-plugin-svgr": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=8.0.0" + }, + "pnpm": { + "overrides": { + "ethereumjs-abi": "^0.6.8" + } + } +} diff --git a/public/env-config.js b/workspace/apps/starkgate/web/public/env-config.js similarity index 100% rename from public/env-config.js rename to workspace/apps/starkgate/web/public/env-config.js diff --git a/workspace/apps/starkgate/web/public/favicon.svg b/workspace/apps/starkgate/web/public/favicon.svg new file mode 100644 index 00000000..c6f77a0f --- /dev/null +++ b/workspace/apps/starkgate/web/public/favicon.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/public/robots.txt b/workspace/apps/starkgate/web/public/robots.txt similarity index 100% rename from public/robots.txt rename to workspace/apps/starkgate/web/public/robots.txt diff --git a/workspace/apps/starkgate/web/src/App.jsx b/workspace/apps/starkgate/web/src/App.jsx new file mode 100644 index 00000000..a4e1ea01 --- /dev/null +++ b/workspace/apps/starkgate/web/src/App.jsx @@ -0,0 +1,65 @@ +import {useEffect} from 'react'; +import {Navigate, Route, Routes} from 'react-router-dom'; + +import {ReactComponent as DiscordIcon} from '@assets/svg/icons/discord.svg'; +import {Footer, Header} from '@containers'; +import {useGoogleFonts} from '@flyyer/use-googlefonts'; +import {useAutoConnect, useConstants, useDiscordTabTracking} from '@hooks'; +import {useApp, useUnsupportedModal} from '@providers'; +import {Bridge, Faq, ProtectedRoute, Terms} from '@routes'; +import {isMobile, openInNewTab} from '@starkware-webapps/utils-browser'; +import {SideButton, StyledBackground} from '@ui'; + +import styles from './App.module.scss'; + +export const App = () => { + const [trackDiscordClick] = useDiscordTabTracking(); + const {DISCORD_LINK_URL} = useConstants(); + const {isAcceptTerms, isScrollActive} = useApp(); + const showUnsupportedModal = useUnsupportedModal(); + useAutoConnect(); + useGoogleFonts([ + { + family: 'Inter', + styles: ['100..800'] + } + ]); + + useEffect(() => { + if (isMobile) { + showUnsupportedModal(); + } + }, []); + + const onDiscordClick = () => { + trackDiscordClick(); + openInNewTab(DISCORD_LINK_URL); + }; + + return ( +
+ {!isMobile && ( + <> +
+
+ + + + + + } + path="/" + /> + } path="/terms" /> + } path="/faq" /> + } path="*" /> + + + } onClick={onDiscordClick} /> + + )} +
+ ); +}; diff --git a/src/App.module.scss b/workspace/apps/starkgate/web/src/App.module.scss similarity index 100% rename from src/App.module.scss rename to workspace/apps/starkgate/web/src/App.module.scss diff --git a/src/__tests__/utils/token.spec.js b/workspace/apps/starkgate/web/src/__tests__/utils/token.spec.js similarity index 91% rename from src/__tests__/utils/token.spec.js rename to workspace/apps/starkgate/web/src/__tests__/utils/token.spec.js index 78f49118..c57e8d58 100644 --- a/src/__tests__/utils/token.spec.js +++ b/workspace/apps/starkgate/web/src/__tests__/utils/token.spec.js @@ -1,4 +1,4 @@ -import {isDai, isEth} from '../../utils'; +import {isDai, isEth} from '@utils'; describe('isEth', () => { it('should return true for eth symbol', () => { diff --git a/src/abis/L1/ERC20.json b/workspace/apps/starkgate/web/src/abis/L1/ERC20.json similarity index 100% rename from src/abis/L1/ERC20.json rename to workspace/apps/starkgate/web/src/abis/L1/ERC20.json diff --git a/src/abis/L1/StarknetDAIBridge.json b/workspace/apps/starkgate/web/src/abis/L1/StarknetDAIBridge.json similarity index 99% rename from src/abis/L1/StarknetDAIBridge.json rename to workspace/apps/starkgate/web/src/abis/L1/StarknetDAIBridge.json index 08492ef1..a2827bf5 100644 --- a/src/abis/L1/StarknetDAIBridge.json +++ b/workspace/apps/starkgate/web/src/abis/L1/StarknetDAIBridge.json @@ -302,7 +302,7 @@ ], "name": "deposit", "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "payable", "type": "function" }, { @@ -333,7 +333,7 @@ ], "name": "forceWithdrawal", "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "payable", "type": "function" }, { @@ -500,4 +500,4 @@ "stateMutability": "nonpayable", "type": "function" } -] +] \ No newline at end of file diff --git a/src/abis/L1/StarknetERC20Bridge.json b/workspace/apps/starkgate/web/src/abis/L1/StarknetERC20Bridge.json similarity index 90% rename from src/abis/L1/StarknetERC20Bridge.json rename to workspace/apps/starkgate/web/src/abis/L1/StarknetERC20Bridge.json index 6966aab7..56afd5d1 100644 --- a/src/abis/L1/StarknetERC20Bridge.json +++ b/workspace/apps/starkgate/web/src/abis/L1/StarknetERC20Bridge.json @@ -1,4 +1,10 @@ [ + { + "anonymous": false, + "inputs": [], + "name": "LogBridgeActivated", + "type": "event" + }, { "anonymous": false, "inputs": [ @@ -19,6 +25,18 @@ "internalType": "uint256", "name": "l2Recipient", "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "fee", + "type": "uint256" } ], "name": "LogDeposit", @@ -218,7 +236,7 @@ ], "name": "deposit", "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "payable", "type": "function" }, { @@ -267,6 +285,19 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [], + "name": "identify", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "pure", + "type": "function" + }, { "inputs": [ { @@ -280,6 +311,19 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [], + "name": "isActive", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [], "name": "isFrozen", @@ -297,7 +341,7 @@ "inputs": [ { "internalType": "address", - "name": "testGovernor", + "name": "user", "type": "address" } ], @@ -434,4 +478,4 @@ "stateMutability": "nonpayable", "type": "function" } -] +] \ No newline at end of file diff --git a/src/abis/L1/StarknetEthBridge.json b/workspace/apps/starkgate/web/src/abis/L1/StarknetEthBridge.json similarity index 87% rename from src/abis/L1/StarknetEthBridge.json rename to workspace/apps/starkgate/web/src/abis/L1/StarknetEthBridge.json index 4c66fe47..eee64262 100644 --- a/src/abis/L1/StarknetEthBridge.json +++ b/workspace/apps/starkgate/web/src/abis/L1/StarknetEthBridge.json @@ -1,4 +1,10 @@ [ + { + "anonymous": false, + "inputs": [], + "name": "LogBridgeActivated", + "type": "event" + }, { "anonymous": false, "inputs": [ @@ -19,6 +25,18 @@ "internalType": "uint256", "name": "l2Recipient", "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "fee", + "type": "uint256" } ], "name": "LogDeposit", @@ -216,6 +234,24 @@ "stateMutability": "payable", "type": "function" }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "l2Recipient", + "type": "uint256" + } + ], + "name": "deposit", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, { "inputs": [ { @@ -262,6 +298,19 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [], + "name": "identify", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "pure", + "type": "function" + }, { "inputs": [ { @@ -275,6 +324,19 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [], + "name": "isActive", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [], "name": "isFrozen", @@ -292,7 +354,7 @@ "inputs": [ { "internalType": "address", - "name": "testGovernor", + "name": "user", "type": "address" } ], @@ -429,4 +491,4 @@ "stateMutability": "nonpayable", "type": "function" } -] +] \ No newline at end of file diff --git a/src/abis/L1/StarknetMessaging.json b/workspace/apps/starkgate/web/src/abis/L1/StarknetMessaging.json similarity index 100% rename from src/abis/L1/StarknetMessaging.json rename to workspace/apps/starkgate/web/src/abis/L1/StarknetMessaging.json diff --git a/workspace/apps/starkgate/web/src/abis/L1/TeleportOracleAuth.json b/workspace/apps/starkgate/web/src/abis/L1/TeleportOracleAuth.json new file mode 100644 index 00000000..3529899a --- /dev/null +++ b/workspace/apps/starkgate/web/src/abis/L1/TeleportOracleAuth.json @@ -0,0 +1,379 @@ +[ + { + "inputs": [ + { + "internalType": "address", + "name": "teleportJoin_", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "usr", + "type": "address" + } + ], + "name": "Deny", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "what", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "data", + "type": "uint256" + } + ], + "name": "File", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "usr", + "type": "address" + } + ], + "name": "Rely", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address[]", + "name": "signers", + "type": "address[]" + } + ], + "name": "SignersAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address[]", + "name": "signers", + "type": "address[]" + } + ], + "name": "SignersRemoved", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "signers_", + "type": "address[]" + } + ], + "name": "addSigners", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "usr", + "type": "address" + } + ], + "name": "deny", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "what", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "data", + "type": "uint256" + } + ], + "name": "file", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "bytes32", + "name": "sourceDomain", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "targetDomain", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "receiver", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "operator", + "type": "bytes32" + }, + { + "internalType": "uint128", + "name": "amount", + "type": "uint128" + }, + { + "internalType": "uint80", + "name": "nonce", + "type": "uint80" + }, + { + "internalType": "uint48", + "name": "timestamp", + "type": "uint48" + } + ], + "internalType": "struct TeleportGUID", + "name": "teleportGUID", + "type": "tuple" + } + ], + "name": "getSignHash", + "outputs": [ + { + "internalType": "bytes32", + "name": "signHash", + "type": "bytes32" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "signHash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "signatures", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "threshold_", + "type": "uint256" + } + ], + "name": "isValid", + "outputs": [ + { + "internalType": "bool", + "name": "valid", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "usr", + "type": "address" + } + ], + "name": "rely", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "signers_", + "type": "address[]" + } + ], + "name": "removeSigners", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "bytes32", + "name": "sourceDomain", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "targetDomain", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "receiver", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "operator", + "type": "bytes32" + }, + { + "internalType": "uint128", + "name": "amount", + "type": "uint128" + }, + { + "internalType": "uint80", + "name": "nonce", + "type": "uint80" + }, + { + "internalType": "uint48", + "name": "timestamp", + "type": "uint48" + } + ], + "internalType": "struct TeleportGUID", + "name": "teleportGUID", + "type": "tuple" + }, + { + "internalType": "bytes", + "name": "signatures", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "maxFeePercentage", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "operatorFee", + "type": "uint256" + } + ], + "name": "requestMint", + "outputs": [ + { + "internalType": "uint256", + "name": "postFeeAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalFee", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "signers", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "teleportJoin", + "outputs": [ + { + "internalType": "contract TeleportJoinLike", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "threshold", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "wards", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } +] \ No newline at end of file diff --git a/src/abis/L1/index.js b/workspace/apps/starkgate/web/src/abis/L1/index.js similarity index 56% rename from src/abis/L1/index.js rename to workspace/apps/starkgate/web/src/abis/L1/index.js index 930e7d2b..e1705ae0 100644 --- a/src/abis/L1/index.js +++ b/workspace/apps/starkgate/web/src/abis/L1/index.js @@ -3,5 +3,13 @@ import L1_DAI_BRIDGE_ABI from './StarknetDAIBridge.json'; import L1_ERC20_BRIDGE_ABI from './StarknetERC20Bridge.json'; import L1_ETH_BRIDGE_ABI from './StarknetEthBridge.json'; import L1_MESSAGING_ABI from './StarknetMessaging.json'; +import L1_TELEPORT_ORACLE_AUTH_ABI from './TeleportOracleAuth.json'; -export {L1_ERC20_ABI, L1_ERC20_BRIDGE_ABI, L1_ETH_BRIDGE_ABI, L1_MESSAGING_ABI, L1_DAI_BRIDGE_ABI}; +export { + L1_ERC20_ABI, + L1_ERC20_BRIDGE_ABI, + L1_ETH_BRIDGE_ABI, + L1_MESSAGING_ABI, + L1_DAI_BRIDGE_ABI, + L1_TELEPORT_ORACLE_AUTH_ABI +}; diff --git a/workspace/apps/starkgate/web/src/abis/L2/dai_teleport_gateway.json b/workspace/apps/starkgate/web/src/abis/L2/dai_teleport_gateway.json new file mode 100644 index 00000000..3529899a --- /dev/null +++ b/workspace/apps/starkgate/web/src/abis/L2/dai_teleport_gateway.json @@ -0,0 +1,379 @@ +[ + { + "inputs": [ + { + "internalType": "address", + "name": "teleportJoin_", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "usr", + "type": "address" + } + ], + "name": "Deny", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "what", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "data", + "type": "uint256" + } + ], + "name": "File", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "usr", + "type": "address" + } + ], + "name": "Rely", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address[]", + "name": "signers", + "type": "address[]" + } + ], + "name": "SignersAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address[]", + "name": "signers", + "type": "address[]" + } + ], + "name": "SignersRemoved", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "signers_", + "type": "address[]" + } + ], + "name": "addSigners", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "usr", + "type": "address" + } + ], + "name": "deny", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "what", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "data", + "type": "uint256" + } + ], + "name": "file", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "bytes32", + "name": "sourceDomain", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "targetDomain", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "receiver", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "operator", + "type": "bytes32" + }, + { + "internalType": "uint128", + "name": "amount", + "type": "uint128" + }, + { + "internalType": "uint80", + "name": "nonce", + "type": "uint80" + }, + { + "internalType": "uint48", + "name": "timestamp", + "type": "uint48" + } + ], + "internalType": "struct TeleportGUID", + "name": "teleportGUID", + "type": "tuple" + } + ], + "name": "getSignHash", + "outputs": [ + { + "internalType": "bytes32", + "name": "signHash", + "type": "bytes32" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "signHash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "signatures", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "threshold_", + "type": "uint256" + } + ], + "name": "isValid", + "outputs": [ + { + "internalType": "bool", + "name": "valid", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "usr", + "type": "address" + } + ], + "name": "rely", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "signers_", + "type": "address[]" + } + ], + "name": "removeSigners", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "bytes32", + "name": "sourceDomain", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "targetDomain", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "receiver", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "operator", + "type": "bytes32" + }, + { + "internalType": "uint128", + "name": "amount", + "type": "uint128" + }, + { + "internalType": "uint80", + "name": "nonce", + "type": "uint80" + }, + { + "internalType": "uint48", + "name": "timestamp", + "type": "uint48" + } + ], + "internalType": "struct TeleportGUID", + "name": "teleportGUID", + "type": "tuple" + }, + { + "internalType": "bytes", + "name": "signatures", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "maxFeePercentage", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "operatorFee", + "type": "uint256" + } + ], + "name": "requestMint", + "outputs": [ + { + "internalType": "uint256", + "name": "postFeeAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalFee", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "signers", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "teleportJoin", + "outputs": [ + { + "internalType": "contract TeleportJoinLike", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "threshold", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "wards", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } +] \ No newline at end of file diff --git a/src/abis/L2/erc20.json b/workspace/apps/starkgate/web/src/abis/L2/erc20.json similarity index 100% rename from src/abis/L2/erc20.json rename to workspace/apps/starkgate/web/src/abis/L2/erc20.json diff --git a/workspace/apps/starkgate/web/src/abis/L2/index.js b/workspace/apps/starkgate/web/src/abis/L2/index.js new file mode 100644 index 00000000..39db1e57 --- /dev/null +++ b/workspace/apps/starkgate/web/src/abis/L2/index.js @@ -0,0 +1,5 @@ +import L2_DAI_TELEPORT_GATEWAY from './dai_teleport_gateway.json'; +import L2_ERC20_ABI from './erc20.json'; +import L2_BRIDGE_ABI from './token_bridge.json'; + +export {L2_ERC20_ABI, L2_BRIDGE_ABI, L2_DAI_TELEPORT_GATEWAY}; diff --git a/src/abis/L2/token_bridge.json b/workspace/apps/starkgate/web/src/abis/L2/token_bridge.json similarity index 75% rename from src/abis/L2/token_bridge.json rename to workspace/apps/starkgate/web/src/abis/L2/token_bridge.json index 5b21bd99..b4614dea 100644 --- a/src/abis/L2/token_bridge.json +++ b/workspace/apps/starkgate/web/src/abis/L2/token_bridge.json @@ -1,91 +1,93 @@ [ { + "name": "Uint256", + "size": 2, + "type": "struct", "members": [ { "name": "low", - "offset": 0, - "type": "felt" + "type": "felt", + "offset": 0 }, { "name": "high", - "offset": 1, - "type": "felt" + "type": "felt", + "offset": 1 } - ], - "name": "Uint256", - "size": 2, - "type": "struct" + ] }, { + "name": "constructor", + "type": "constructor", "inputs": [ { "name": "governor_address", "type": "felt" } ], - "name": "constructor", - "outputs": [], - "type": "constructor" + "outputs": [] }, { - "inputs": [], "name": "get_governor", + "type": "function", + "inputs": [], "outputs": [ { "name": "res", "type": "felt" } ], - "stateMutability": "view", - "type": "function" + "stateMutability": "view" }, { - "inputs": [], "name": "get_l1_bridge", + "type": "function", + "inputs": [], "outputs": [ { "name": "res", "type": "felt" } ], - "stateMutability": "view", - "type": "function" + "stateMutability": "view" }, { - "inputs": [], "name": "get_l2_token", + "type": "function", + "inputs": [], "outputs": [ { "name": "res", "type": "felt" } ], - "stateMutability": "view", - "type": "function" + "stateMutability": "view" }, { + "name": "set_l1_bridge", + "type": "function", "inputs": [ { "name": "l1_bridge_address", "type": "felt" } ], - "name": "set_l1_bridge", - "outputs": [], - "type": "function" + "outputs": [] }, { + "name": "set_l2_token", + "type": "function", "inputs": [ { "name": "l2_token_address", "type": "felt" } ], - "name": "set_l2_token", - "outputs": [], - "type": "function" + "outputs": [] }, { + "name": "initiate_withdraw", + "type": "function", "inputs": [ { "name": "l1_recipient", @@ -96,11 +98,11 @@ "type": "Uint256" } ], - "name": "initiate_withdraw", - "outputs": [], - "type": "function" + "outputs": [] }, { + "name": "handle_deposit", + "type": "l1_handler", "inputs": [ { "name": "from_address", @@ -119,8 +121,6 @@ "type": "felt" } ], - "name": "handle_deposit", - "outputs": [], - "type": "l1_handler" + "outputs": [] } -] +] \ No newline at end of file diff --git a/workspace/apps/starkgate/web/src/abis/index.js b/workspace/apps/starkgate/web/src/abis/index.js new file mode 100644 index 00000000..6397280b --- /dev/null +++ b/workspace/apps/starkgate/web/src/abis/index.js @@ -0,0 +1,2 @@ +export * from './L1'; +export * from './L2'; diff --git a/workspace/apps/starkgate/web/src/analytics/gtag.js b/workspace/apps/starkgate/web/src/analytics/gtag.js new file mode 100644 index 00000000..7aed8f7c --- /dev/null +++ b/workspace/apps/starkgate/web/src/analytics/gtag.js @@ -0,0 +1,13 @@ +import {GOOGLE_MEASURE_ID} from '@config/envs'; + +export const track = (event, data) => { + window.gtag('event', `starkgate/${event}`, data); +}; + +export const setUser = data => { + window.gtag('config', GOOGLE_MEASURE_ID, { + user_id: `${data.accountL1}-${data.accountL2}`, + user_account_L1: data.accountL1, + user_account_L2: data.accountL2 + }); +}; diff --git a/workspace/apps/starkgate/web/src/analytics/index.js b/workspace/apps/starkgate/web/src/analytics/index.js new file mode 100644 index 00000000..e2c0f525 --- /dev/null +++ b/workspace/apps/starkgate/web/src/analytics/index.js @@ -0,0 +1,2 @@ +export * from './track'; +export * from './track-event-type'; diff --git a/workspace/apps/starkgate/web/src/analytics/splitbee.js b/workspace/apps/starkgate/web/src/analytics/splitbee.js new file mode 100644 index 00000000..12830fb0 --- /dev/null +++ b/workspace/apps/starkgate/web/src/analytics/splitbee.js @@ -0,0 +1,9 @@ +import splitbee from '@splitbee/web'; + +export const track = (event, data) => { + splitbee.track(event, data); +}; + +export const setUser = data => { + splitbee.user.set(data); +}; diff --git a/workspace/apps/starkgate/web/src/analytics/track-event-type.js b/workspace/apps/starkgate/web/src/analytics/track-event-type.js new file mode 100644 index 00000000..985c82a0 --- /dev/null +++ b/workspace/apps/starkgate/web/src/analytics/track-event-type.js @@ -0,0 +1,84 @@ +export const TrackEventType = { + /** + * Menus + */ + SELECT_TOKEN_MENU: 'select_token_menu', + ACCOUNT_MENU: 'account_menu', + TRANSFER_MENU: 'transfer_menu', + + /** + * Connect buttons + */ + CONNECT_ETHEREUM_WALLET_CLICK: 'connect_ethereum_wallet_click', + CONNECT_STARKNET_WALLET_CLICK: 'connect_starknet_wallet_click', + CONNECT_WALLET_CLICK: 'connect_wallet_click', + + /** + * Transfer menu + */ + TRANSFER: { + SWAP_NETWORK: 'transfer_menu/swap_network', + MAX_CLICK: 'transfer_menu/max_click', + TRANSFER_TO_L2: { + INITIATED: 'transfer_menu/transfer_to_l2_initiated', + SUCCESS: 'transfer_menu/transfer_to_l2_success', + ERROR: 'transfer_menu/transfer_to_l2_error', + REJECT: 'transfer_menu/transfer_to_l2_reject' + }, + TRANSFER_TO_L1: { + INITIATED: 'transfer_menu/transfer_to_l1_initiated', + SUCCESS: 'transfer_menu/transfer_to_l1_success', + ERROR: 'transfer_menu/transfer_to_l1_error', + REJECT: 'transfer_menu/transfer_to_l1_reject', + AUTO: 'transfer_menu/auto_withdrawal_initiated' + }, + COMPLETE_TRANSFER_TO_L1: { + INITIATED: 'transfer_menu/complete_transfer_to_l1_initiated', + SUCCESS: 'transfer_menu/complete_transfer_to_l1_success', + ERROR: 'transfer_menu/complete_transfer_to_l1_error', + REJECT: 'transfer_menu/complete_transfer_to_l1_reject' + } + }, + + /** + * Select token menu + */ + SELECT_TOKEN: { + TOKEN_SELECTED: 'select_token_menu/token_selected' + }, + + /** + * Account menu + */ + ACCOUNT: { + TX_LINK_CLICK: 'account_menu/tx_link_click', + ACCOUNT_LINK_CLICK: 'account_menu/account_link_click', + VIEW_TRANSFERS_LOG: 'account_menu/view_transfers_log', + COMPLETE_TRANSFER_CLICK: 'account_menu/complete_transfer', + ADDRESS_COPIED: 'account_menu/address_copied' + }, + + /** + * Login screen + */ + LOGIN: { + WALLET_CLICK: 'login_modal/wallet_click', + LOGIN_ERROR: 'login_modal/login_error', + BLOCKED_ADDRESS: 'login_modal/blocked_address' + }, + + /** + * Terms screen + */ + TERMS_SCREEN: 'terms_screen', + TERMS: { + ACCEPT_CLICK: 'terms_screen/accept_click' + }, + + FAQ_SCREEN: 'faq_screen', + + /** + * Tabs + */ + DISCORD_TAB_CLICK: 'discord_tab_click' +}; diff --git a/workspace/apps/starkgate/web/src/analytics/track.js b/workspace/apps/starkgate/web/src/analytics/track.js new file mode 100644 index 00000000..a9b3e07b --- /dev/null +++ b/workspace/apps/starkgate/web/src/analytics/track.js @@ -0,0 +1,19 @@ +import {getLogger} from '@starkware-webapps/js-logger'; + +import {track as gtagTrack, setUser as setGtagUser} from './gtag'; +import {setUser as setSplitbeeUser, track as splitbeeTrack} from './splitbee'; + +const logger = getLogger('Analytics'); + +export const track = (event, data) => { + logger.debug('Sending track event...', {event, data}); + gtagTrack(event, data); + splitbeeTrack(event, data); + logger.debug('Track event sent.'); +}; + +export const setUser = data => { + logger.debug('Set user', data); + setGtagUser(data); + setSplitbeeUser(data); +}; diff --git a/workspace/apps/starkgate/web/src/api/attestations.js b/workspace/apps/starkgate/web/src/api/attestations.js new file mode 100644 index 00000000..6d0d35b7 --- /dev/null +++ b/workspace/apps/starkgate/web/src/api/attestations.js @@ -0,0 +1,23 @@ +import {ATTESTATIONS_ORACLE_URL} from '@config/envs'; +import {createHttpClient} from '@starkware-webapps/http-client'; +import {getLogger} from '@starkware-webapps/js-logger'; +import {promiseHandler} from '@starkware-webapps/utils'; + +const logger = getLogger('attestations'); +const httpClient = createHttpClient({baseURL: ATTESTATIONS_ORACLE_URL}); +const query = '?type=teleport_starknet&index='; + +export const fetchAttestations = async (l2TxHash, threshold) => { + const [response, error] = await promiseHandler(httpClient.get(query + l2TxHash)); + if (error) { + logger.log('Oracle error', error, {l2TxHash}); + } else { + const attestations = response.data || []; + logger.log('Oracle attestations', attestations, {l2TxHash}); + if (attestations.length < threshold) { + logger.log('Oracle attestations are below the threshold', threshold, {l2TxHash}); + } else { + return attestations; + } + } +}; diff --git a/workspace/apps/starkgate/web/src/api/gas-cost.js b/workspace/apps/starkgate/web/src/api/gas-cost.js new file mode 100644 index 00000000..bda64676 --- /dev/null +++ b/workspace/apps/starkgate/web/src/api/gas-cost.js @@ -0,0 +1,19 @@ +import {RELAYER_GAS_COST_URL} from '@config/envs'; +import {createHttpClient, parseHttpClientError} from '@starkware-webapps/http-client'; +import {promiseHandler} from '@starkware-webapps/utils'; + +const httpClient = createHttpClient({baseURL: RELAYER_GAS_COST_URL}); + +export const fetchGasCost = async bridgeAddress => { + const [response, error] = await promiseHandler( + httpClient.get(`${bridgeAddress}/${Math.floor(new Date().getTime() / 1000)}`) + ); + if (error) { + throw parseHttpClientError(error); + } else { + const { + result: {gasCost} + } = response.data; + return gasCost; + } +}; diff --git a/workspace/apps/starkgate/web/src/api/index.js b/workspace/apps/starkgate/web/src/api/index.js new file mode 100644 index 00000000..f1a868bc --- /dev/null +++ b/workspace/apps/starkgate/web/src/api/index.js @@ -0,0 +1,4 @@ +export * from './attestations'; +export * from './gas-cost'; +export * from './screening'; +export * from './transfers'; diff --git a/workspace/apps/starkgate/web/src/api/screening.js b/workspace/apps/starkgate/web/src/api/screening.js new file mode 100644 index 00000000..98d414a7 --- /dev/null +++ b/workspace/apps/starkgate/web/src/api/screening.js @@ -0,0 +1,22 @@ +import {SCREENING_SERVICE_URL as baseURL} from '@config/envs'; +import {createHttpClient, parseHttpClientError} from '@starkware-webapps/http-client'; +import {promiseHandler} from '@starkware-webapps/utils'; + +const httpClient = createHttpClient({ + baseURL +}); + +export const SCREENING_ENDPOINT = 'screen'; + +export const screenAddress = async address => { + const [result, error] = await promiseHandler( + httpClient.get(`/${SCREENING_ENDPOINT}?address=${address}`) + ); + if (error) { + throw parseHttpClientError(error); + } + const { + data: {blocked} + } = result; + return blocked; +}; diff --git a/workspace/apps/starkgate/web/src/api/transfers.js b/workspace/apps/starkgate/web/src/api/transfers.js new file mode 100644 index 00000000..a46950da --- /dev/null +++ b/workspace/apps/starkgate/web/src/api/transfers.js @@ -0,0 +1,44 @@ +import {TRANSFER_LOG_SERVICE_URL as baseURL} from '@config/envs'; +import {createHttpClient, parseHttpClientError} from '@starkware-webapps/http-client'; +import {promiseHandler} from '@starkware-webapps/utils'; + +export const GET_TRANSFERS_ENDPOINT = 'get_transfers'; +export const GET_PENDING_WITHDRAWALS_ENDPOINT = 'get_pending_withdrawals'; + +const httpClient = createHttpClient({ + baseURL +}); + +export const fetchPendingWithdrawals = async l1address => { + const [result, error] = await promiseHandler( + httpClient.get(`/${GET_PENDING_WITHDRAWALS_ENDPOINT}?l1address=${l1address}`) + ); + if (error) { + throw parseHttpClientError(error); + } + return result.data; +}; + +export const fetchL1Transfers = async (l1address, next) => { + const [result, error] = await promiseHandler( + httpClient.get( + `/${GET_TRANSFERS_ENDPOINT}?l1address=${l1address}${next ? `&next=${next}` : ''}` + ) + ); + if (error) { + throw parseHttpClientError(error); + } + return result.data; +}; + +export const fetchL2Transfers = async (l2address, next) => { + const [result, error] = await promiseHandler( + httpClient.get( + `/${GET_TRANSFERS_ENDPOINT}?l2address=${l2address}${next ? `&next=${next}` : ''}` + ) + ); + if (error) { + throw parseHttpClientError(error); + } + return result.data; +}; diff --git a/src/assets/img/argent.png b/workspace/apps/starkgate/web/src/assets/img/argent.png similarity index 100% rename from src/assets/img/argent.png rename to workspace/apps/starkgate/web/src/assets/img/argent.png diff --git a/src/assets/img/light-accent.png b/workspace/apps/starkgate/web/src/assets/img/light-accent.png similarity index 100% rename from src/assets/img/light-accent.png rename to workspace/apps/starkgate/web/src/assets/img/light-accent.png diff --git a/workspace/apps/starkgate/web/src/assets/img/starkgate.png b/workspace/apps/starkgate/web/src/assets/img/starkgate.png new file mode 100644 index 00000000..cfddcec6 Binary files /dev/null and b/workspace/apps/starkgate/web/src/assets/img/starkgate.png differ diff --git a/src/assets/img/stars.png b/workspace/apps/starkgate/web/src/assets/img/stars.png similarity index 100% rename from src/assets/img/stars.png rename to workspace/apps/starkgate/web/src/assets/img/stars.png diff --git a/src/assets/svg/chains/arbitrum.svg b/workspace/apps/starkgate/web/src/assets/svg/chains/arbitrum.svg similarity index 100% rename from src/assets/svg/chains/arbitrum.svg rename to workspace/apps/starkgate/web/src/assets/svg/chains/arbitrum.svg diff --git a/src/assets/svg/chains/ethereum.svg b/workspace/apps/starkgate/web/src/assets/svg/chains/ethereum.svg similarity index 100% rename from src/assets/svg/chains/ethereum.svg rename to workspace/apps/starkgate/web/src/assets/svg/chains/ethereum.svg diff --git a/src/assets/svg/chains/optimism.svg b/workspace/apps/starkgate/web/src/assets/svg/chains/optimism.svg similarity index 100% rename from src/assets/svg/chains/optimism.svg rename to workspace/apps/starkgate/web/src/assets/svg/chains/optimism.svg diff --git a/src/assets/svg/chains/polygon.svg b/workspace/apps/starkgate/web/src/assets/svg/chains/polygon.svg similarity index 100% rename from src/assets/svg/chains/polygon.svg rename to workspace/apps/starkgate/web/src/assets/svg/chains/polygon.svg diff --git a/workspace/apps/starkgate/web/src/assets/svg/chains/starknet.svg b/workspace/apps/starkgate/web/src/assets/svg/chains/starknet.svg new file mode 100644 index 00000000..c6f77a0f --- /dev/null +++ b/workspace/apps/starkgate/web/src/assets/svg/chains/starknet.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/src/assets/svg/etherscan.svg b/workspace/apps/starkgate/web/src/assets/svg/etherscan.svg similarity index 100% rename from src/assets/svg/etherscan.svg rename to workspace/apps/starkgate/web/src/assets/svg/etherscan.svg diff --git a/src/assets/svg/exchanges/coinbase.svg b/workspace/apps/starkgate/web/src/assets/svg/exchanges/coinbase.svg similarity index 100% rename from src/assets/svg/exchanges/coinbase.svg rename to workspace/apps/starkgate/web/src/assets/svg/exchanges/coinbase.svg diff --git a/src/assets/svg/exchanges/huobi.svg b/workspace/apps/starkgate/web/src/assets/svg/exchanges/huobi.svg similarity index 100% rename from src/assets/svg/exchanges/huobi.svg rename to workspace/apps/starkgate/web/src/assets/svg/exchanges/huobi.svg diff --git a/src/assets/svg/exchanges/okx.svg b/workspace/apps/starkgate/web/src/assets/svg/exchanges/okx.svg similarity index 100% rename from src/assets/svg/exchanges/okx.svg rename to workspace/apps/starkgate/web/src/assets/svg/exchanges/okx.svg diff --git a/src/assets/svg/icons/alert-circle.svg b/workspace/apps/starkgate/web/src/assets/svg/icons/alert-circle.svg similarity index 100% rename from src/assets/svg/icons/alert-circle.svg rename to workspace/apps/starkgate/web/src/assets/svg/icons/alert-circle.svg diff --git a/src/assets/svg/icons/arrow-right.svg b/workspace/apps/starkgate/web/src/assets/svg/icons/arrow-right.svg similarity index 100% rename from src/assets/svg/icons/arrow-right.svg rename to workspace/apps/starkgate/web/src/assets/svg/icons/arrow-right.svg diff --git a/src/assets/svg/icons/back.svg b/workspace/apps/starkgate/web/src/assets/svg/icons/back.svg similarity index 100% rename from src/assets/svg/icons/back.svg rename to workspace/apps/starkgate/web/src/assets/svg/icons/back.svg diff --git a/src/assets/svg/icons/card.svg b/workspace/apps/starkgate/web/src/assets/svg/icons/card.svg similarity index 100% rename from src/assets/svg/icons/card.svg rename to workspace/apps/starkgate/web/src/assets/svg/icons/card.svg diff --git a/src/assets/svg/icons/chains.svg b/workspace/apps/starkgate/web/src/assets/svg/icons/chains.svg similarity index 100% rename from src/assets/svg/icons/chains.svg rename to workspace/apps/starkgate/web/src/assets/svg/icons/chains.svg diff --git a/src/assets/svg/icons/close.svg b/workspace/apps/starkgate/web/src/assets/svg/icons/close.svg similarity index 100% rename from src/assets/svg/icons/close.svg rename to workspace/apps/starkgate/web/src/assets/svg/icons/close.svg diff --git a/src/assets/svg/icons/collapse.svg b/workspace/apps/starkgate/web/src/assets/svg/icons/collapse.svg similarity index 100% rename from src/assets/svg/icons/collapse.svg rename to workspace/apps/starkgate/web/src/assets/svg/icons/collapse.svg diff --git a/src/assets/svg/icons/copy.svg b/workspace/apps/starkgate/web/src/assets/svg/icons/copy.svg similarity index 100% rename from src/assets/svg/icons/copy.svg rename to workspace/apps/starkgate/web/src/assets/svg/icons/copy.svg diff --git a/src/assets/svg/icons/discord.svg b/workspace/apps/starkgate/web/src/assets/svg/icons/discord.svg similarity index 100% rename from src/assets/svg/icons/discord.svg rename to workspace/apps/starkgate/web/src/assets/svg/icons/discord.svg diff --git a/src/assets/svg/icons/exchange.svg b/workspace/apps/starkgate/web/src/assets/svg/icons/exchange.svg similarity index 100% rename from src/assets/svg/icons/exchange.svg rename to workspace/apps/starkgate/web/src/assets/svg/icons/exchange.svg diff --git a/workspace/apps/starkgate/web/src/assets/svg/icons/fast.svg b/workspace/apps/starkgate/web/src/assets/svg/icons/fast.svg new file mode 100644 index 00000000..ea6946c1 --- /dev/null +++ b/workspace/apps/starkgate/web/src/assets/svg/icons/fast.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/svg/icons/forward.svg b/workspace/apps/starkgate/web/src/assets/svg/icons/forward.svg similarity index 100% rename from src/assets/svg/icons/forward.svg rename to workspace/apps/starkgate/web/src/assets/svg/icons/forward.svg diff --git a/src/assets/svg/icons/info.svg b/workspace/apps/starkgate/web/src/assets/svg/icons/info.svg similarity index 100% rename from src/assets/svg/icons/info.svg rename to workspace/apps/starkgate/web/src/assets/svg/icons/info.svg diff --git a/src/assets/svg/icons/link.svg b/workspace/apps/starkgate/web/src/assets/svg/icons/link.svg similarity index 100% rename from src/assets/svg/icons/link.svg rename to workspace/apps/starkgate/web/src/assets/svg/icons/link.svg diff --git a/src/assets/svg/icons/minus-circle.svg b/workspace/apps/starkgate/web/src/assets/svg/icons/minus-circle.svg similarity index 100% rename from src/assets/svg/icons/minus-circle.svg rename to workspace/apps/starkgate/web/src/assets/svg/icons/minus-circle.svg diff --git a/src/assets/svg/icons/plus-circle.svg b/workspace/apps/starkgate/web/src/assets/svg/icons/plus-circle.svg similarity index 100% rename from src/assets/svg/icons/plus-circle.svg rename to workspace/apps/starkgate/web/src/assets/svg/icons/plus-circle.svg diff --git a/src/assets/svg/icons/redirect.svg b/workspace/apps/starkgate/web/src/assets/svg/icons/redirect.svg similarity index 100% rename from src/assets/svg/icons/redirect.svg rename to workspace/apps/starkgate/web/src/assets/svg/icons/redirect.svg diff --git a/src/assets/svg/icons/refresh.svg b/workspace/apps/starkgate/web/src/assets/svg/icons/refresh.svg similarity index 100% rename from src/assets/svg/icons/refresh.svg rename to workspace/apps/starkgate/web/src/assets/svg/icons/refresh.svg diff --git a/src/assets/svg/icons/rocket.svg b/workspace/apps/starkgate/web/src/assets/svg/icons/rocket.svg similarity index 100% rename from src/assets/svg/icons/rocket.svg rename to workspace/apps/starkgate/web/src/assets/svg/icons/rocket.svg diff --git a/src/assets/svg/icons/search.svg b/workspace/apps/starkgate/web/src/assets/svg/icons/search.svg similarity index 100% rename from src/assets/svg/icons/search.svg rename to workspace/apps/starkgate/web/src/assets/svg/icons/search.svg diff --git a/src/assets/svg/icons/selected.svg b/workspace/apps/starkgate/web/src/assets/svg/icons/selected.svg similarity index 100% rename from src/assets/svg/icons/selected.svg rename to workspace/apps/starkgate/web/src/assets/svg/icons/selected.svg diff --git a/src/assets/svg/icons/success.svg b/workspace/apps/starkgate/web/src/assets/svg/icons/success.svg similarity index 100% rename from src/assets/svg/icons/success.svg rename to workspace/apps/starkgate/web/src/assets/svg/icons/success.svg diff --git a/src/assets/svg/icons/swap.svg b/workspace/apps/starkgate/web/src/assets/svg/icons/swap.svg similarity index 100% rename from src/assets/svg/icons/swap.svg rename to workspace/apps/starkgate/web/src/assets/svg/icons/swap.svg diff --git a/src/assets/svg/icons/warning-circle.svg b/workspace/apps/starkgate/web/src/assets/svg/icons/warning-circle.svg similarity index 100% rename from src/assets/svg/icons/warning-circle.svg rename to workspace/apps/starkgate/web/src/assets/svg/icons/warning-circle.svg diff --git a/src/assets/svg/icons/warning.svg b/workspace/apps/starkgate/web/src/assets/svg/icons/warning.svg similarity index 100% rename from src/assets/svg/icons/warning.svg rename to workspace/apps/starkgate/web/src/assets/svg/icons/warning.svg diff --git a/src/assets/svg/providers/banxa.svg b/workspace/apps/starkgate/web/src/assets/svg/providers/banxa.svg similarity index 100% rename from src/assets/svg/providers/banxa.svg rename to workspace/apps/starkgate/web/src/assets/svg/providers/banxa.svg diff --git a/src/assets/svg/providers/layerswap.svg b/workspace/apps/starkgate/web/src/assets/svg/providers/layerswap.svg similarity index 100% rename from src/assets/svg/providers/layerswap.svg rename to workspace/apps/starkgate/web/src/assets/svg/providers/layerswap.svg diff --git a/src/assets/svg/providers/orbiter.svg b/workspace/apps/starkgate/web/src/assets/svg/providers/orbiter.svg similarity index 100% rename from src/assets/svg/providers/orbiter.svg rename to workspace/apps/starkgate/web/src/assets/svg/providers/orbiter.svg diff --git a/src/assets/svg/providers/ramp.svg b/workspace/apps/starkgate/web/src/assets/svg/providers/ramp.svg similarity index 100% rename from src/assets/svg/providers/ramp.svg rename to workspace/apps/starkgate/web/src/assets/svg/providers/ramp.svg diff --git a/src/assets/svg/starkscan.svg b/workspace/apps/starkgate/web/src/assets/svg/starkscan.svg similarity index 100% rename from src/assets/svg/starkscan.svg rename to workspace/apps/starkgate/web/src/assets/svg/starkscan.svg diff --git a/src/assets/svg/starkware.svg b/workspace/apps/starkgate/web/src/assets/svg/starkware.svg similarity index 100% rename from src/assets/svg/starkware.svg rename to workspace/apps/starkgate/web/src/assets/svg/starkware.svg diff --git a/src/assets/svg/tabs/liquidity.svg b/workspace/apps/starkgate/web/src/assets/svg/tabs/liquidity.svg similarity index 100% rename from src/assets/svg/tabs/liquidity.svg rename to workspace/apps/starkgate/web/src/assets/svg/tabs/liquidity.svg diff --git a/src/assets/svg/tokens/DAI.svg b/workspace/apps/starkgate/web/src/assets/svg/tokens/DAI.svg similarity index 100% rename from src/assets/svg/tokens/DAI.svg rename to workspace/apps/starkgate/web/src/assets/svg/tokens/DAI.svg diff --git a/src/assets/svg/tokens/ETH.svg b/workspace/apps/starkgate/web/src/assets/svg/tokens/ETH.svg similarity index 100% rename from src/assets/svg/tokens/ETH.svg rename to workspace/apps/starkgate/web/src/assets/svg/tokens/ETH.svg diff --git a/src/assets/svg/tokens/FRAX.svg b/workspace/apps/starkgate/web/src/assets/svg/tokens/FRAX.svg similarity index 100% rename from src/assets/svg/tokens/FRAX.svg rename to workspace/apps/starkgate/web/src/assets/svg/tokens/FRAX.svg diff --git a/src/assets/svg/tokens/USDC.svg b/workspace/apps/starkgate/web/src/assets/svg/tokens/USDC.svg similarity index 100% rename from src/assets/svg/tokens/USDC.svg rename to workspace/apps/starkgate/web/src/assets/svg/tokens/USDC.svg diff --git a/src/assets/svg/tokens/USDT.svg b/workspace/apps/starkgate/web/src/assets/svg/tokens/USDT.svg similarity index 100% rename from src/assets/svg/tokens/USDT.svg rename to workspace/apps/starkgate/web/src/assets/svg/tokens/USDT.svg diff --git a/src/assets/svg/tokens/WBTC.svg b/workspace/apps/starkgate/web/src/assets/svg/tokens/WBTC.svg similarity index 100% rename from src/assets/svg/tokens/WBTC.svg rename to workspace/apps/starkgate/web/src/assets/svg/tokens/WBTC.svg diff --git a/workspace/apps/starkgate/web/src/assets/svg/tokens/rETH.svg b/workspace/apps/starkgate/web/src/assets/svg/tokens/rETH.svg new file mode 100644 index 00000000..77f1e395 --- /dev/null +++ b/workspace/apps/starkgate/web/src/assets/svg/tokens/rETH.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/workspace/apps/starkgate/web/src/assets/svg/tokens/wstETH.svg b/workspace/apps/starkgate/web/src/assets/svg/tokens/wstETH.svg new file mode 100644 index 00000000..1818c8d9 --- /dev/null +++ b/workspace/apps/starkgate/web/src/assets/svg/tokens/wstETH.svg @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/svg/voyager.svg b/workspace/apps/starkgate/web/src/assets/svg/voyager.svg similarity index 100% rename from src/assets/svg/voyager.svg rename to workspace/apps/starkgate/web/src/assets/svg/voyager.svg diff --git a/src/assets/svg/wallets/coinbase-wallet.svg b/workspace/apps/starkgate/web/src/assets/svg/wallets/coinbase-wallet.svg similarity index 100% rename from src/assets/svg/wallets/coinbase-wallet.svg rename to workspace/apps/starkgate/web/src/assets/svg/wallets/coinbase-wallet.svg diff --git a/src/assets/svg/wallets/metamask.svg b/workspace/apps/starkgate/web/src/assets/svg/wallets/metamask.svg similarity index 100% rename from src/assets/svg/wallets/metamask.svg rename to workspace/apps/starkgate/web/src/assets/svg/wallets/metamask.svg diff --git a/src/components/Containers/Footer/Footer.js b/workspace/apps/starkgate/web/src/components/Containers/Footer/Footer.jsx similarity index 56% rename from src/components/Containers/Footer/Footer.js rename to workspace/apps/starkgate/web/src/components/Containers/Footer/Footer.jsx index 1146d352..0b7f4f40 100644 --- a/src/components/Containers/Footer/Footer.js +++ b/workspace/apps/starkgate/web/src/components/Containers/Footer/Footer.jsx @@ -1,8 +1,10 @@ import React from 'react'; import useBreakpoint from 'use-breakpoint'; -import {Breakpoint, isMobile} from '../../../enums'; -import {useFooterTranslation} from '../../../hooks'; +import {Breakpoint, isMobile} from '@enums'; +import {useFooterTranslation} from '@hooks'; +import {evaluate} from '@starkware-webapps/utils'; + import styles from './Footer.module.scss'; export const Footer = () => { @@ -11,7 +13,9 @@ export const Footer = () => { return !isMobile(breakpoint) ? (
-
{rightsTxt}
+
+ {evaluate(rightsTxt, {fullYear: new Date().getFullYear()})} +
) : null; }; diff --git a/src/components/Containers/Footer/Footer.module.scss b/workspace/apps/starkgate/web/src/components/Containers/Footer/Footer.module.scss similarity index 100% rename from src/components/Containers/Footer/Footer.module.scss rename to workspace/apps/starkgate/web/src/components/Containers/Footer/Footer.module.scss diff --git a/src/components/Containers/Header/Header.js b/workspace/apps/starkgate/web/src/components/Containers/Header/Header.jsx similarity index 65% rename from src/components/Containers/Header/Header.js rename to workspace/apps/starkgate/web/src/components/Containers/Header/Header.jsx index a4397bf5..ec3453ff 100644 --- a/src/components/Containers/Header/Header.js +++ b/workspace/apps/starkgate/web/src/components/Containers/Header/Header.jsx @@ -1,16 +1,13 @@ -import {openInNewTab, toClasses} from '@starkware-industries/commons-js-utils'; -import React from 'react'; import {useLocation} from 'react-router-dom'; -import {ReactComponent as StarkGateLogo} from '../../../assets/img/starkgate.svg'; -import {ReactComponent as LinkIcon} from '../../../assets/svg/icons/link.svg'; -import {STARKNET_ECOSYSTEM_URL} from '../../../config/constants'; -import {useTabsTranslation} from '../../../hooks'; -import {useApp} from '../../../providers/AppProvider'; -import {useMenu} from '../../../providers/MenuProvider'; -import {useSource} from '../../../providers/SourceProvider'; -import {useIsL1} from '../../../providers/TransferProvider'; -import {Divider, ChainSelect, StarknetWalletButton, EthereumWalletButton, Tabs} from '../../UI'; +import StarkGateLogoPath from '@assets/img/starkgate.png'; +import {ReactComponent as LinkIcon} from '@assets/svg/icons/link.svg'; +import {STARKNET_ECOSYSTEM_URL} from '@config/constants'; +import {useTabsTranslation} from '@hooks'; +import {useApp, useIsL1, useMenu, useSource} from '@providers'; +import {openInNewTab, toClasses} from '@starkware-webapps/utils-browser'; +import {ChainSelect, Divider, EthereumWalletButton, Image, StarknetWalletButton, Tabs} from '@ui'; + import styles from './Header.module.scss'; export const Header = () => { @@ -37,6 +34,10 @@ export const Header = () => { isActive: pathname === '/faq', onClick: () => navigateToRoute('/faq') } + // { + // text: contactUsTxt, + // onClick: () => openInNewTab(CONTACT_US_LINK_URL) + // } ]; const onLogoClick = () => { @@ -50,7 +51,7 @@ export const Header = () => {
- +
diff --git a/src/components/Containers/Header/Header.module.scss b/workspace/apps/starkgate/web/src/components/Containers/Header/Header.module.scss similarity index 100% rename from src/components/Containers/Header/Header.module.scss rename to workspace/apps/starkgate/web/src/components/Containers/Header/Header.module.scss diff --git a/src/components/Containers/index.js b/workspace/apps/starkgate/web/src/components/Containers/index.jsx similarity index 100% rename from src/components/Containers/index.js rename to workspace/apps/starkgate/web/src/components/Containers/index.jsx diff --git a/src/components/Features/Account/Account.js b/workspace/apps/starkgate/web/src/components/Features/Account/Account.jsx similarity index 78% rename from src/components/Features/Account/Account.js rename to workspace/apps/starkgate/web/src/components/Features/Account/Account.jsx index 046f4250..86983795 100644 --- a/src/components/Features/Account/Account.js +++ b/workspace/apps/starkgate/web/src/components/Features/Account/Account.jsx @@ -1,28 +1,21 @@ -import {useLogger} from '@starkware-industries/commons-js-hooks'; -import {evaluate, findIndexById} from '@starkware-industries/commons-js-utils'; import PropTypes from 'prop-types'; -import React, {useEffect} from 'react'; +import {useEffect} from 'react'; import {addAddressPadding} from 'starknet'; -import { - useAccountTracking, - useAccountTranslation, - useCompleteTransferToL1, - useEnvs -} from '../../../hooks'; -import {useMenu} from '../../../providers/MenuProvider'; -import {useTransfer} from '../../../providers/TransferProvider'; -import {useAccountTransfersLog} from '../../../providers/TransfersLogProvider'; -import {useWallets} from '../../../providers/WalletsProvider'; +import {useAccountTracking, useAccountTranslation, useCompleteTransferToL1, useEnvs} from '@hooks'; +import {useMenu, useTransfer, useTransferLog, useWallets} from '@providers'; +import {useLogger} from '@starkware-webapps/ui'; +import {evaluate, findIndexById} from '@starkware-webapps/utils'; import { AccountAddress, BackButton, + LinkButton, LogoutButton, Menu, MenuTitle, TransferLogContainer -} from '../../UI'; -import {LinkButton} from '../../UI/LinkButton/LinkButton'; +} from '@ui'; + import {TransferLog} from '../TransferLog/TransferLog'; import styles from './Account.module.scss'; @@ -40,13 +33,11 @@ export const Account = ({transferId}) => { const {showSourceMenu} = useMenu(); const {account, resetWallet} = useWallets(); const {isL1, isL2, fromNetwork} = useTransfer(); - const transfers = useAccountTransfersLog(account); const completeTransferToL1 = useCompleteTransferToL1(); + const {transfers, fetchNextPage, isLoading} = useTransferLog(); useEffect(() => { - if (!account) { - showSourceMenu(); - } + !account && showSourceMenu(); }, [account]); const renderTransfers = () => { @@ -98,7 +89,9 @@ export const Account = ({transferId}) => { /> {renderExplorers()} {renderTransfers()} diff --git a/src/components/Features/Account/Account.module.scss b/workspace/apps/starkgate/web/src/components/Features/Account/Account.module.scss similarity index 100% rename from src/components/Features/Account/Account.module.scss rename to workspace/apps/starkgate/web/src/components/Features/Account/Account.module.scss diff --git a/workspace/apps/starkgate/web/src/components/Features/AutoWithdrawal/AutoWithdrawal.jsx b/workspace/apps/starkgate/web/src/components/Features/AutoWithdrawal/AutoWithdrawal.jsx new file mode 100644 index 00000000..39d31c90 --- /dev/null +++ b/workspace/apps/starkgate/web/src/components/Features/AutoWithdrawal/AutoWithdrawal.jsx @@ -0,0 +1,32 @@ +import PropTypes from 'prop-types'; +import React from 'react'; + +import {useConstants, useTransferTranslation} from '@hooks'; +import {useTransfer} from '@providers'; +import {CheckboxWithText} from '@ui'; + +import styles from './AutoWithdrawal.module.scss'; + +export const AutoWithdrawal = ({checked, disabled}) => { + const {setAutoWithdrawal} = useTransfer(); + const {enableAutoWithdrawal, readMoreTxt} = useTransferTranslation(); + const {AUTO_WITHDRAWAL_READ_MORE_URL} = useConstants(); + + return ( +
+ setAutoWithdrawal(event.currentTarget.checked)} + /> +
+ ); +}; + +AutoWithdrawal.propTypes = { + checked: PropTypes.bool, + disabled: PropTypes.bool +}; diff --git a/workspace/apps/starkgate/web/src/components/Features/AutoWithdrawal/AutoWithdrawal.module.scss b/workspace/apps/starkgate/web/src/components/Features/AutoWithdrawal/AutoWithdrawal.module.scss new file mode 100644 index 00000000..130f7646 --- /dev/null +++ b/workspace/apps/starkgate/web/src/components/Features/AutoWithdrawal/AutoWithdrawal.module.scss @@ -0,0 +1,3 @@ +.autoWithdrawal { + margin: 16px 0; +} diff --git a/workspace/apps/starkgate/web/src/components/Features/FastWithdrawal/FastWithdrawal.jsx b/workspace/apps/starkgate/web/src/components/Features/FastWithdrawal/FastWithdrawal.jsx new file mode 100644 index 00000000..3485f8af --- /dev/null +++ b/workspace/apps/starkgate/web/src/components/Features/FastWithdrawal/FastWithdrawal.jsx @@ -0,0 +1,22 @@ +import PropTypes from 'prop-types'; +import React from 'react'; + +import {toClasses} from '@starkware-webapps/utils-browser'; + +import styles from './FastWithdrawal.module.scss'; +import {FastWithdrawalCheckbox} from './FastWithdrawalCheckbox'; +import {FastWithdrawalDisclaimer} from './FastWithdrawalDisclaimer/FastWithdrawalDisclaimer'; + +export const FastWithdrawal = ({checked, disabled}) => { + return ( +
+ + {checked && } +
+ ); +}; + +FastWithdrawal.propTypes = { + checked: PropTypes.bool, + disabled: PropTypes.bool +}; diff --git a/workspace/apps/starkgate/web/src/components/Features/FastWithdrawal/FastWithdrawal.module.scss b/workspace/apps/starkgate/web/src/components/Features/FastWithdrawal/FastWithdrawal.module.scss new file mode 100644 index 00000000..47538e57 --- /dev/null +++ b/workspace/apps/starkgate/web/src/components/Features/FastWithdrawal/FastWithdrawal.module.scss @@ -0,0 +1,15 @@ +@import '../../../index'; + +.fastWithdrawal { + display: flex; + flex-direction: column; + margin: 16px 0; + + &.disabled { + opacity: 0.5; + + & * { + pointer-events: none !important; + } + } +} diff --git a/workspace/apps/starkgate/web/src/components/Features/FastWithdrawal/FastWithdrawalCheckbox.jsx b/workspace/apps/starkgate/web/src/components/Features/FastWithdrawal/FastWithdrawalCheckbox.jsx new file mode 100644 index 00000000..9bd291f5 --- /dev/null +++ b/workspace/apps/starkgate/web/src/components/Features/FastWithdrawal/FastWithdrawalCheckbox.jsx @@ -0,0 +1,26 @@ +import PropTypes from 'prop-types'; +import React from 'react'; + +import {useConstants, useTransferTranslation} from '@hooks'; +import {useTransfer} from '@providers'; +import {CheckboxWithText} from '@ui'; + +export const FastWithdrawalCheckbox = ({checked}) => { + const {setFastWithdrawal} = useTransfer(); + const {enableFastWithdrawal, readMoreTxt} = useTransferTranslation(); + const {MAKER_TELEPORT_LEARN_MORE_URL} = useConstants(); + + return ( + setFastWithdrawal(event.currentTarget.checked)} + /> + ); +}; + +FastWithdrawalCheckbox.propTypes = { + checked: PropTypes.bool +}; diff --git a/workspace/apps/starkgate/web/src/components/Features/FastWithdrawal/FastWithdrawalDisclaimer/FastWithdrawalDisclaimer.jsx b/workspace/apps/starkgate/web/src/components/Features/FastWithdrawal/FastWithdrawalDisclaimer/FastWithdrawalDisclaimer.jsx new file mode 100644 index 00000000..598db989 --- /dev/null +++ b/workspace/apps/starkgate/web/src/components/Features/FastWithdrawal/FastWithdrawalDisclaimer/FastWithdrawalDisclaimer.jsx @@ -0,0 +1,40 @@ +import {useMemo} from 'react'; + +import {ReactComponent as ArrowRight} from '@assets/svg/icons/arrow-right.svg'; +import {ReactComponent as InfoIcon} from '@assets/svg/icons/info.svg'; +import {useConstants, useTransferTranslation} from '@hooks'; +import {useAmount} from '@providers'; +import {evaluate} from '@starkware-webapps/utils'; +import {Link, LinkType} from '@ui'; + +import styles from './FastWithdrawalDisclaimer.module.scss'; + +export const FastWithdrawalDisclaimer = () => { + const {fastWithdrawalDisclaimerTitle, fastWithdrawalDisclaimerTxt, learnMoreTxt} = + useTransferTranslation(); + const {MAKER_TELEPORT_LEARN_MORE_URL, TELEPORT_FEE_MULTIPLIER} = useConstants(); + const [amount] = useAmount(); + const feeAmount = useMemo(() => TELEPORT_FEE_MULTIPLIER * amount, [amount]); + + return ( +
+
+ +
+
+
{fastWithdrawalDisclaimerTitle}
+
+ {evaluate(fastWithdrawalDisclaimerTxt, {feeAmount})} +
+ } + link={MAKER_TELEPORT_LEARN_MORE_URL} + openInNewTab={true} + text={learnMoreTxt} + type={LinkType.URL} + /> +
+
+ ); +}; diff --git a/workspace/apps/starkgate/web/src/components/Features/FastWithdrawal/FastWithdrawalDisclaimer/FastWithdrawalDisclaimer.module.scss b/workspace/apps/starkgate/web/src/components/Features/FastWithdrawal/FastWithdrawalDisclaimer/FastWithdrawalDisclaimer.module.scss new file mode 100644 index 00000000..07e46b0c --- /dev/null +++ b/workspace/apps/starkgate/web/src/components/Features/FastWithdrawal/FastWithdrawalDisclaimer/FastWithdrawalDisclaimer.module.scss @@ -0,0 +1,49 @@ +@import '../../../../index'; + +.fastWithdrawalDisclaimer { + display: flex; + margin-top: 16px; + color: $--color-raptures-light; + border: 1px solid $--color-orange-soda; + border-radius: 12px; + padding: 12px 16px; + + .disclaimerIcon { + svg path { + stroke: $--color-raptures-light; + } + } + + .disclaimerText { + margin-left: 14px; + + .disclaimerTitle { + line-height: 20px; + font-size: 14px; + font-weight: 600; + margin-bottom: 4px; + } + + .disclaimerMessage { + line-height: 18px; + font-size: 12px; + margin-bottom: 8px; + } + + .disclaimerLearnMore { + line-height: 20px; + font-size: 12px; + color: $--color-raptures-light; + font-weight: 600; + display: flex; + + svg { + padding-left: 8px; + + path { + stroke: $--color-raptures-light; + } + } + } + } +} diff --git a/src/components/Features/ProvidersMenu/ProvidersMenu.js b/workspace/apps/starkgate/web/src/components/Features/ProvidersMenu/ProvidersMenu.jsx similarity index 73% rename from src/components/Features/ProvidersMenu/ProvidersMenu.js rename to workspace/apps/starkgate/web/src/components/Features/ProvidersMenu/ProvidersMenu.jsx index bd898447..105103a5 100644 --- a/src/components/Features/ProvidersMenu/ProvidersMenu.js +++ b/workspace/apps/starkgate/web/src/components/Features/ProvidersMenu/ProvidersMenu.jsx @@ -1,14 +1,20 @@ -import {ChainType} from '@starkware-industries/commons-js-enums'; -import {buildDynamicURL, evaluate, openInNewTab} from '@starkware-industries/commons-js-utils'; import React from 'react'; -import {sources, providers, depositConfig, withdrawConfig} from '../../../config/sources'; -import {useEnvs, useProvidersTranslation, useSourceTranslation} from '../../../hooks'; -import {useSource} from '../../../providers/SourceProvider'; -import {useIsL1} from '../../../providers/TransferProvider'; -import {useL2Wallet} from '../../../providers/WalletsProvider'; -import {Badge, ChoiceItemType, CircleLogoSize, MenuBackground, MultiChoiceList} from '../../UI'; -import {SourceSelect} from '../../UI/SourceSelect/SourceSelect'; +import {depositConfig, providers, sources, withdrawConfig} from '@config/sources'; +import {useEnvs, useProvidersTranslation, useSourceTranslation} from '@hooks'; +import {useIsL1, useL2Wallet, useSource} from '@providers'; +import {ChainType} from '@starkware-webapps/enums'; +import {evaluate} from '@starkware-webapps/utils'; +import {buildDynamicURL, openInNewTab} from '@starkware-webapps/utils-browser'; +import { + Badge, + ChoiceItemType, + CircleLogoSize, + MenuBackground, + MultiChoiceList, + SourceSelect +} from '@ui'; + import styles from './ProvidersMenu.module.scss'; export const ProvidersMenu = () => { diff --git a/src/components/Features/ProvidersMenu/ProvidersMenu.module.scss b/workspace/apps/starkgate/web/src/components/Features/ProvidersMenu/ProvidersMenu.module.scss similarity index 100% rename from src/components/Features/ProvidersMenu/ProvidersMenu.module.scss rename to workspace/apps/starkgate/web/src/components/Features/ProvidersMenu/ProvidersMenu.module.scss diff --git a/src/components/Features/SelectToken/SelectToken.js b/workspace/apps/starkgate/web/src/components/Features/SelectToken/SelectToken.jsx similarity index 75% rename from src/components/Features/SelectToken/SelectToken.js rename to workspace/apps/starkgate/web/src/components/Features/SelectToken/SelectToken.jsx index 8088b651..aeb22696 100644 --- a/src/components/Features/SelectToken/SelectToken.js +++ b/workspace/apps/starkgate/web/src/components/Features/SelectToken/SelectToken.jsx @@ -1,13 +1,11 @@ import React, {useEffect, useState} from 'react'; -import L1Logo from '../../../assets/svg/chains/ethereum.svg'; -import L2Logo from '../../../assets/svg/chains/starknet.svg'; -import {useColors, useSelectTokenTranslation, useSelectTokenTracking} from '../../../hooks'; -import {useLogin} from '../../../providers/AppProvider'; -import {useMenu} from '../../../providers/MenuProvider'; -import {useTokens} from '../../../providers/TokensProvider'; -import {useTransfer} from '../../../providers/TransferProvider'; -import {BackButton, Menu, MenuTitle, RefreshIcon, SearchToken, SelectTokenList} from '../../UI'; +import L1Logo from '@assets/svg/chains/ethereum.svg'; +import L2Logo from '@assets/svg/chains/starknet.svg'; +import {useColors, useSelectTokenTracking, useSelectTokenTranslation} from '@hooks'; +import {useLogin, useMenu, useTokens, useTransfer} from '@providers'; +import {BackButton, Menu, MenuTitle, RefreshIcon, SearchToken, SelectTokenList} from '@ui'; + import styles from './SelectToken.module.scss'; export const SelectToken = () => { @@ -27,7 +25,7 @@ export const SelectToken = () => { const onTokenSelect = tokenData => { const {symbol} = tokenData; - trackSelectToken(symbol); + trackSelectToken({symbol}); selectToken(symbol); showSourceMenu(); }; diff --git a/src/components/Features/SelectToken/SelectToken.module.scss b/workspace/apps/starkgate/web/src/components/Features/SelectToken/SelectToken.module.scss similarity index 100% rename from src/components/Features/SelectToken/SelectToken.module.scss rename to workspace/apps/starkgate/web/src/components/Features/SelectToken/SelectToken.module.scss diff --git a/src/components/Features/Source/Source.js b/workspace/apps/starkgate/web/src/components/Features/Source/Source.jsx similarity index 57% rename from src/components/Features/Source/Source.js rename to workspace/apps/starkgate/web/src/components/Features/Source/Source.jsx index 0ed3818e..6f7320df 100644 --- a/src/components/Features/Source/Source.js +++ b/workspace/apps/starkgate/web/src/components/Features/Source/Source.jsx @@ -1,16 +1,16 @@ -import {NetworkType} from '@starkware-industries/commons-js-enums'; import React from 'react'; -import {ActionType} from '../../../enums'; -import {useSourceTranslation, useTransferTracking} from '../../../hooks'; -import {useSource} from '../../../providers/SourceProvider'; -import {useIsL1, useIsL2, useTransfer} from '../../../providers/TransferProvider'; -import {ProvidersMenu, Transfer} from '../../Features'; -import {Menu, SourceMenuTab} from '../../UI'; +import {ProvidersMenu, Transfer} from '@features'; +import {useSourceTranslation, useTransferTracking} from '@hooks'; +import {useIsL1, useIsL2, useSource, useTransfer} from '@providers'; +import {TransferType, isDeposit, isWithdrawal} from '@starkgate/shared'; +import {isL1Network} from '@starkware-webapps/enums'; +import {Menu, SourceMenuTab} from '@ui'; + import styles from './Source.module.scss'; export const Source = () => { - const [trackSwapNetworks] = useTransferTracking(); + const [, trackSwapNetworks] = useTransferTracking(); const [, swapToL1] = useIsL1(); const [isL2, swapToL2] = useIsL2(); const {action} = useTransfer(); @@ -20,16 +20,16 @@ export const Source = () => { const tabs = [ { text: depositTxt, - isActive: action === ActionType.TRANSFER_TO_L2, + isActive: isDeposit(action), onClick: () => { - onNetworkTabClick(ActionType.TRANSFER_TO_L2); + onNetworkTabClick(TransferType.DEPOSIT); } }, { text: withdrawTxt, - isActive: action === ActionType.TRANSFER_TO_L1, + isActive: isWithdrawal(action), onClick: () => { - onNetworkTabClick(ActionType.TRANSFER_TO_L1); + onNetworkTabClick(TransferType.WITHDRAWAL); } } ]; @@ -58,7 +58,7 @@ export const Source = () => {
{renderTabs()}
- {source === NetworkType.L1 ? : } + {isL1Network(source) ? : }
); diff --git a/src/components/Features/Source/Source.module.scss b/workspace/apps/starkgate/web/src/components/Features/Source/Source.module.scss similarity index 100% rename from src/components/Features/Source/Source.module.scss rename to workspace/apps/starkgate/web/src/components/Features/Source/Source.module.scss diff --git a/src/components/Features/ToastManager/ToastManager.js b/workspace/apps/starkgate/web/src/components/Features/ToastManager/ToastManager.jsx similarity index 67% rename from src/components/Features/ToastManager/ToastManager.js rename to workspace/apps/starkgate/web/src/components/Features/ToastManager/ToastManager.jsx index d161a0c9..3d3712e1 100644 --- a/src/components/Features/ToastManager/ToastManager.js +++ b/workspace/apps/starkgate/web/src/components/Features/ToastManager/ToastManager.jsx @@ -1,29 +1,27 @@ -import { - isConsumed, - isOnChain, - isRejected, - NetworkType -} from '@starkware-industries/commons-js-enums'; -import {usePrevious, useDidMountEffect} from '@starkware-industries/commons-js-hooks'; -import {getCookie, getFullTime, setCookie} from '@starkware-industries/commons-js-utils'; import PropTypes from 'prop-types'; -import React, {useEffect} from 'react'; -import {toast, Toaster} from 'react-hot-toast'; +import {useEffect} from 'react'; +import {Toaster, toast} from 'react-hot-toast'; import useBreakpoint from 'use-breakpoint'; import useDeepCompareEffect from 'use-deep-compare-effect'; +import {ReactComponent as FastIcon} from '@assets/svg/icons/fast.svg'; +import {ALPHA_DISCLAIMER_COOKIE_NAME, HIDE_ELEMENT_COOKIE_DURATION_DAYS} from '@config/constants'; +import {Breakpoint, ToastType, isMobile} from '@enums'; +import {useCompleteTransferToL1, useCompleteTransferToastTranslation} from '@hooks'; +import {useIsL1, useIsL2, useL1Wallet, useMenu, useTransfers} from '@providers'; +import {isDeposit, isPendingWithdrawal} from '@starkgate/shared'; +import {NetworkType, isConsumed, isRejected} from '@starkware-webapps/enums'; +import {useDidMountEffect, usePrevious} from '@starkware-webapps/ui'; +import {getFullTime} from '@starkware-webapps/utils'; +import {getCookie, setCookie} from '@starkware-webapps/utils-browser'; import { - ALPHA_DISCLAIMER_COOKIE_NAME, - HIDE_ELEMENT_COOKIE_DURATION_DAYS -} from '../../../config/constants'; -import {ActionType, Breakpoint, isMobile, ToastType} from '../../../enums'; -import {useCompleteTransferToL1} from '../../../hooks'; -import {useMenu} from '../../../providers/MenuProvider'; -import {useIsL1, useIsL2} from '../../../providers/TransferProvider'; -import {useTransfersLog} from '../../../providers/TransfersLogProvider'; -import {useAccountHash} from '../../../providers/WalletsProvider'; -import {CompleteTransferToL1Toast, ToastBody, TransferToast, Bullet} from '../../UI'; -import {AlphaDisclaimerToast} from '../../UI/Toast/AlphaDisclaimerToast/AlphaDisclaimerToast'; + AlphaDisclaimerToast, + Bullet, + CompleteTransferToL1Toast, + ToastBody, + TransferToast +} from '@ui'; + import styles from './ToastManager.module.scss'; let toastsMap = {}; @@ -32,18 +30,14 @@ let toastsDismissed = {}; const ALPHA_DISCLAIMER_TOAST_ID = 'alphaDisclaimer'; export const ToastManager = () => { - const {transfers} = useTransfersLog(); + const transfers = useTransfers(); const prevTransfers = usePrevious(transfers); const completeTransferToL1 = useCompleteTransferToL1(); const {showAccountMenu} = useMenu(); const [, swapToL1] = useIsL1(); const [, swapToL2] = useIsL2(); const {breakpoint} = useBreakpoint(Breakpoint); - const accountHash = useAccountHash(); - - useDidMountEffect(() => { - clearToasts(); - }, [accountHash]); + const {account: accountL1} = useL1Wallet(); useEffect(() => { const alphaDisclaimerCookie = getCookie(ALPHA_DISCLAIMER_COOKIE_NAME); @@ -52,10 +46,12 @@ export const ToastManager = () => { } }, [breakpoint]); + useDidMountEffect(() => { + clearToasts(); + }, [accountL1]); + useDeepCompareEffect(() => { - if (accountHash) { - renderToasts(); - } + accountL1 && renderToasts(); }, [transfers]); const renderToasts = () => { @@ -66,21 +62,19 @@ export const ToastManager = () => { }; const handleToast = (transfer, prevTransfer) => { - const {status, type, l1hash} = transfer; - const isChanged = prevTransfer && status !== prevTransfer.status; - if (isChanged && isConsumed(status)) { + const {l2TxStatus, l1TxHash, l1Address} = transfer; + const isChanged = prevTransfer && l2TxStatus !== prevTransfer.l2TxStatus; + if (isChanged && isConsumed(l2TxStatus)) { return showConsumedTransferToast(transfer); } - if (isChanged && isRejected(status)) { + if (isChanged && isRejected(l2TxStatus)) { return showRejectedTransferToast(transfer); } - if (type === ActionType.TRANSFER_TO_L1) { - if (!l1hash && isOnChain(status)) { - return showCompleteTransferToL1Toast(transfer); - } - if (l1hash && isToastRendered(transfer.id, ToastType.COMPLETE_TRANSFER_TO_L1)) { - return dismissToast(transfer.id, ToastType.COMPLETE_TRANSFER_TO_L1); - } + if (isPendingWithdrawal(transfer) && l1Address?.toLowerCase() === accountL1?.toLowerCase()) { + return showCompleteTransferToL1Toast(transfer); + } + if (l1TxHash && isToastRendered(transfer.id, ToastType.COMPLETE_TRANSFER_TO_L1)) { + return dismissToast(transfer.id, ToastType.COMPLETE_TRANSFER_TO_L1); } }; @@ -175,12 +169,12 @@ export const ToastManager = () => { const onCompleteTransferClick = async transfer => { await completeTransferToL1(transfer); - dismissToast(transfer); + dismissToast(transfer.id); }; - const goToTransferLog = transfer => { - transfer.type === ActionType.TRANSFER_TO_L2 ? swapToL1() : swapToL2(); - showAccountMenu({transferId: transfer.id}); + const goToTransferLog = ({id, type}) => { + isDeposit(type) ? swapToL1() : swapToL2(); + showAccountMenu({transferId: id}); }; const clearToasts = () => { @@ -208,24 +202,38 @@ export const ToastManager = () => { }; export const TransferData = ({transfer}) => { + const {type, l1TxTimestamp, l2TxTimestamp} = transfer; + const {fastIndicationTxt} = useCompleteTransferToastTranslation(); const bodyStyle = { fontSize: '12px', lineHeight: '18px', - paddingRight: '0' + paddingRight: '0', + display: 'flex' }; return ( <> ${NetworkType.L2}` - : `${NetworkType.L2} -> ${NetworkType.L1}` + <> + {isDeposit(type) + ? `${NetworkType.L1} -> ${NetworkType.L2}` + : `${NetworkType.L2} -> ${NetworkType.L1}`} + {transfer.fastWithdrawal && ( +
+ +
{fastIndicationTxt}
+
+ )} + } style={bodyStyle} />
- +
diff --git a/workspace/apps/starkgate/web/src/components/Features/ToastManager/ToastManager.module.scss b/workspace/apps/starkgate/web/src/components/Features/ToastManager/ToastManager.module.scss new file mode 100644 index 00000000..38a76a75 --- /dev/null +++ b/workspace/apps/starkgate/web/src/components/Features/ToastManager/ToastManager.module.scss @@ -0,0 +1,15 @@ +@import '../../../index'; + +.toastManager { + margin-top: #{$--header-height}px; +} + +.fastIndication { + display: flex; + margin-left: 8px; + + .fastIndicationText { + color: $--color-orange-soda; + margin-left: 4px; + } +} diff --git a/src/components/Features/Transfer/Transfer.js b/workspace/apps/starkgate/web/src/components/Features/Transfer/Transfer.jsx similarity index 83% rename from src/components/Features/Transfer/Transfer.js rename to workspace/apps/starkgate/web/src/components/Features/Transfer/Transfer.jsx index 27891217..996c2984 100644 --- a/src/components/Features/Transfer/Transfer.js +++ b/workspace/apps/starkgate/web/src/components/Features/Transfer/Transfer.jsx @@ -1,37 +1,42 @@ -import {NetworkType} from '@starkware-industries/commons-js-enums'; -import {afterDecimal, evaluate, isNegative, isZero} from '@starkware-industries/commons-js-utils'; import PropTypes from 'prop-types'; import React, {Fragment, useEffect, useState} from 'react'; +import {AutoWithdrawal, FastWithdrawal} from '@features'; import { useConstants, + useEnvs, useTransferToL1, useTransferToL2, useTransferTracking, useTransferTranslation -} from '../../../hooks'; -import {useLogin} from '../../../providers/AppProvider'; -import {useMenu} from '../../../providers/MenuProvider'; -import {useL1Token, useL2Token, useTokens} from '../../../providers/TokensProvider'; +} from '@hooks'; import { useAmount, + useBridgeIsFull, useIsL1, useIsL2, - useBridgeIsFull, + useL1Token, + useL2Token, + useLogin, + useMenu, + useTokens, useTransfer -} from '../../../providers/TransferProvider'; +} from '@providers'; +import {NetworkType} from '@starkware-webapps/enums'; +import {afterDecimal, evaluate, isNegative, isZero} from '@starkware-webapps/utils'; import { + Link, + LinkType, Loading, LoadingSize, + LoginWalletButton, + MenuBackground, NetworkMenu, NetworkSwap, TokenInput, - TransferButton, - MenuBackground, - LinkType, - Link, - LoginWalletButton -} from '../../UI'; + TransferButton +} from '@ui'; + import styles from './Transfer.module.scss'; export const Transfer = ({onNetworkSwap}) => { @@ -49,7 +54,7 @@ export const Transfer = ({onNetworkSwap}) => { const [errorMsg, setErrorMsg] = useState(''); const [isButtonDisabled, setIsButtonDisabled] = useState(true); const {showSelectTokenMenu} = useMenu(); - const {selectToken, selectedToken} = useTransfer(); + const {selectToken, selectedToken, autoWithdrawal, fastWithdrawal} = useTransfer(); const {tokens, updateTokenBalance} = useTokens(); const {bridgeIsFull} = useBridgeIsFull(); const transferToL2 = useTransferToL2(); @@ -57,6 +62,7 @@ export const Transfer = ({onNetworkSwap}) => { const getL1Token = useL1Token(); const getL2Token = useL2Token(); const {isLoggedIn} = useLogin(); + const {ENABLE_AUTO_WITHDRAWAL, ENABLE_FAST_WITHDRAWAL} = useEnvs(); useEffect(() => { if (!selectedToken) { @@ -115,7 +121,15 @@ export const Transfer = ({onNetworkSwap}) => { setAmount(event.target.value); }; - const onTransferClick = async () => (isL1 ? transferToL2(amount) : transferToL1(amount)); + const onTransferClick = async () => { + isL1 + ? await transferToL2(amount) + : await transferToL1( + amount, + !!selectedToken.autoWithdrawal && autoWithdrawal, + !!selectedToken.fastWithdrawal && fastWithdrawal + ); + }; const onRefreshTokenBalanceClick = () => { updateTokenBalance(selectedToken.symbol); @@ -178,6 +192,12 @@ export const Transfer = ({onNetworkSwap}) => { {isL1 ? renderL1Network() : renderL2Network()} {isL1 ? renderL2Network() : renderL1Network()} + {ENABLE_AUTO_WITHDRAWAL && selectedToken.autoWithdrawal && ( + + )} + {ENABLE_FAST_WITHDRAWAL && selectedToken.fastWithdrawal && ( + + )} {isLoggedIn ? ( { const {STARKSCAN_TX_URL, STARKSCAN_ETH_TX_URL} = useEnvs(); - const {symbol, timestamp, name, amount, status, l1hash, l2hash} = transfer; + const { + type, + symbol, + l1TxTimestamp, + l2TxTimestamp, + name, + amount, + l2TxStatus, + l1TxHash, + l2TxHash, + customData, + fastWithdrawal + } = transfer; const [sign, setSign] = useState(''); const {action, isL1} = useTransfer(); useEffect(() => { - setSign(transfer.type === action ? '-' : '+'); + setSign(type === action ? '-' : '+'); }, [action]); const renderTransferStatus = () => { return ( -
- {!isOnChain(status) - ? TransactionStatusFriendlyMessage[status || TransactionStatus.NOT_RECEIVED] +
+ {!isOnChain(l2TxStatus) + ? TransactionStatusFriendlyMessage[l2TxStatus || TransactionStatus.NOT_RECEIVED] : ''}
); }; const renderL1TxButton = () => { - return !l1hash && isL1 && isOnChain(status) ? ( + return !l1TxHash && + isL1 && + isWithdrawal(type) && + ((!fastWithdrawal && isOnChain(l2TxStatus)) || (fastWithdrawal && customData)) ? ( ) : ( ); @@ -52,13 +68,9 @@ export const TransferLog = ({transfer, onCompleteTransferClick, onTxClick}) => { const renderL2TxButton = () => { return ( ); @@ -67,22 +79,24 @@ export const TransferLog = ({transfer, onCompleteTransferClick, onTxClick}) => { return ( <>
-
- -
+
+
+
{name}
-
{`${getFullTime(timestamp)}`}
-
-
{sign} {amount} {symbol.toUpperCase()}
+
+
+
{`${getFullTime( + isDeposit(type) ? l1TxTimestamp : l2TxTimestamp + )}`}
{renderTransferStatus()} -
- {renderL1TxButton()} - {renderL2TxButton()} -
+
+
+ {renderL1TxButton()} + {renderL2TxButton()}
diff --git a/workspace/apps/starkgate/web/src/components/Features/TransferLog/TransferLog.module.scss b/workspace/apps/starkgate/web/src/components/Features/TransferLog/TransferLog.module.scss new file mode 100644 index 00000000..5b4fcd1e --- /dev/null +++ b/workspace/apps/starkgate/web/src/components/Features/TransferLog/TransferLog.module.scss @@ -0,0 +1,49 @@ +@import '../../../index'; + +.transferLog { + display: flex; + flex-direction: column; + padding: 16px 8px; + position: relative; + + & > * { + margin: 2px; + } + + .dataRow { + display: flex; + justify-content: space-between; + + .left { + display: flex; + } + + .label { + font-size: 14px; + font-weight: 700; + line-height: 20px; + } + + .data { + color: $--color-toolbox; + height: 16px; + + &.error { + color: $--color-jasper; + } + } + } + + .linksRow { + display: flex; + justify-content: flex-end; + + & > * { + margin-left: 4px; + } + } + + &:not(:last-child) { + border-bottom: 1px solid $--color-indigo; + } +} diff --git a/src/components/Features/index.js b/workspace/apps/starkgate/web/src/components/Features/index.jsx similarity index 74% rename from src/components/Features/index.js rename to workspace/apps/starkgate/web/src/components/Features/index.jsx index f4923590..85d64221 100644 --- a/src/components/Features/index.js +++ b/workspace/apps/starkgate/web/src/components/Features/index.jsx @@ -5,3 +5,5 @@ export * from './TransferLog/TransferLog'; export * from './ToastManager/ToastManager'; export * from './Source/Source'; export * from './ProvidersMenu/ProvidersMenu'; +export * from './AutoWithdrawal/AutoWithdrawal'; +export * from './FastWithdrawal/FastWithdrawal'; diff --git a/src/components/UI/AccountAddress/AccountAddress.js b/workspace/apps/starkgate/web/src/components/UI/AccountAddress/AccountAddress.jsx similarity index 76% rename from src/components/UI/AccountAddress/AccountAddress.js rename to workspace/apps/starkgate/web/src/components/UI/AccountAddress/AccountAddress.jsx index 8c8ebf99..51a5b3a7 100644 --- a/src/components/UI/AccountAddress/AccountAddress.js +++ b/workspace/apps/starkgate/web/src/components/UI/AccountAddress/AccountAddress.jsx @@ -1,10 +1,12 @@ -import {useAnimation} from '@starkware-industries/commons-js-hooks'; -import {shortenAddress, toClasses} from '@starkware-industries/commons-js-utils'; import PropTypes from 'prop-types'; import React, {useRef} from 'react'; -import {ReactComponent as CopyIcon} from '../../../assets/svg/icons/copy.svg'; -import {useAccountTranslation} from '../../../hooks'; +import {ReactComponent as CopyIcon} from '@assets/svg/icons/copy.svg'; +import {useAccountTranslation} from '@hooks'; +import {useAnimation} from '@starkware-webapps/ui'; +import {shortenAddress} from '@starkware-webapps/utils'; +import {toClasses} from '@starkware-webapps/utils-browser'; + import styles from './AccountAddress.module.scss'; const COPIED_ANIMATION_TIMEOUT_INTERVAL = 1000; diff --git a/src/components/UI/AccountAddress/AccountAddress.module.scss b/workspace/apps/starkgate/web/src/components/UI/AccountAddress/AccountAddress.module.scss similarity index 100% rename from src/components/UI/AccountAddress/AccountAddress.module.scss rename to workspace/apps/starkgate/web/src/components/UI/AccountAddress/AccountAddress.module.scss diff --git a/src/components/UI/Alert/Alert.js b/workspace/apps/starkgate/web/src/components/UI/Alert/Alert.jsx similarity index 81% rename from src/components/UI/Alert/Alert.js rename to workspace/apps/starkgate/web/src/components/UI/Alert/Alert.jsx index f808948c..cf653b12 100644 --- a/src/components/UI/Alert/Alert.js +++ b/workspace/apps/starkgate/web/src/components/UI/Alert/Alert.jsx @@ -1,10 +1,11 @@ -import {toClasses} from '@starkware-industries/commons-js-utils'; import PropTypes from 'prop-types'; import React from 'react'; -import {ReactComponent as InfoIcon} from '../../../assets/svg/icons/info.svg'; -import {ReactComponent as SuccessIcon} from '../../../assets/svg/icons/success.svg'; -import {ReactComponent as WarningIcon} from '../../../assets/svg/icons/warning.svg'; +import {ReactComponent as InfoIcon} from '@assets/svg/icons/info.svg'; +import {ReactComponent as SuccessIcon} from '@assets/svg/icons/success.svg'; +import {ReactComponent as WarningIcon} from '@assets/svg/icons/warning.svg'; +import {toClasses} from '@starkware-webapps/utils-browser'; + import styles from './Alert.module.scss'; export const AlertType = { diff --git a/src/components/UI/Alert/Alert.module.scss b/workspace/apps/starkgate/web/src/components/UI/Alert/Alert.module.scss similarity index 100% rename from src/components/UI/Alert/Alert.module.scss rename to workspace/apps/starkgate/web/src/components/UI/Alert/Alert.module.scss diff --git a/src/components/UI/BackButton/BackButton.js b/workspace/apps/starkgate/web/src/components/UI/BackButton/BackButton.jsx similarity index 74% rename from src/components/UI/BackButton/BackButton.js rename to workspace/apps/starkgate/web/src/components/UI/BackButton/BackButton.jsx index 1f00540b..7c22aed3 100644 --- a/src/components/UI/BackButton/BackButton.js +++ b/workspace/apps/starkgate/web/src/components/UI/BackButton/BackButton.jsx @@ -1,8 +1,9 @@ import PropTypes from 'prop-types'; import React from 'react'; -import {ReactComponent as BackIcon} from '../../../assets/svg/icons/back.svg'; -import {useMenusTranslation} from '../../../hooks'; +import {ReactComponent as BackIcon} from '@assets/svg/icons/back.svg'; +import {useMenusTranslation} from '@hooks'; + import styles from './BackButton.module.scss'; export const BackButton = ({onClick}) => { diff --git a/src/components/UI/BackButton/BackButton.module.scss b/workspace/apps/starkgate/web/src/components/UI/BackButton/BackButton.module.scss similarity index 100% rename from src/components/UI/BackButton/BackButton.module.scss rename to workspace/apps/starkgate/web/src/components/UI/BackButton/BackButton.module.scss diff --git a/src/components/UI/Badge/Badge.js b/workspace/apps/starkgate/web/src/components/UI/Badge/Badge.jsx similarity index 100% rename from src/components/UI/Badge/Badge.js rename to workspace/apps/starkgate/web/src/components/UI/Badge/Badge.jsx diff --git a/src/components/UI/Badge/Badge.module.scss b/workspace/apps/starkgate/web/src/components/UI/Badge/Badge.module.scss similarity index 100% rename from src/components/UI/Badge/Badge.module.scss rename to workspace/apps/starkgate/web/src/components/UI/Badge/Badge.module.scss diff --git a/src/components/UI/Bullet/Bullet.js b/workspace/apps/starkgate/web/src/components/UI/Bullet/Bullet.jsx similarity index 100% rename from src/components/UI/Bullet/Bullet.js rename to workspace/apps/starkgate/web/src/components/UI/Bullet/Bullet.jsx diff --git a/src/components/UI/Bullet/Bullet.module.scss b/workspace/apps/starkgate/web/src/components/UI/Bullet/Bullet.module.scss similarity index 100% rename from src/components/UI/Bullet/Bullet.module.scss rename to workspace/apps/starkgate/web/src/components/UI/Bullet/Bullet.module.scss diff --git a/src/components/UI/BurgerMenu/BurgerMenu.js b/workspace/apps/starkgate/web/src/components/UI/BurgerMenu/BurgerMenu.jsx similarity index 87% rename from src/components/UI/BurgerMenu/BurgerMenu.js rename to workspace/apps/starkgate/web/src/components/UI/BurgerMenu/BurgerMenu.jsx index 84e41650..00662ceb 100644 --- a/src/components/UI/BurgerMenu/BurgerMenu.js +++ b/workspace/apps/starkgate/web/src/components/UI/BurgerMenu/BurgerMenu.jsx @@ -1,8 +1,9 @@ -import {toClasses} from '@starkware-industries/commons-js-utils'; import PropTypes from 'prop-types'; import React, {useState} from 'react'; -import {BurgerMenuItem} from '../BurgerMenuItem/BurgerMenuItem'; +import {toClasses} from '@starkware-webapps/utils-browser'; +import {BurgerMenuItem} from '@ui'; + import styles from './BurgerMenu.module.scss'; export const BurgerMenu = ({items}) => { diff --git a/src/components/UI/BurgerMenu/BurgerMenu.module.scss b/workspace/apps/starkgate/web/src/components/UI/BurgerMenu/BurgerMenu.module.scss similarity index 100% rename from src/components/UI/BurgerMenu/BurgerMenu.module.scss rename to workspace/apps/starkgate/web/src/components/UI/BurgerMenu/BurgerMenu.module.scss diff --git a/src/components/UI/BurgerMenuItem/BurgerMenuItem.js b/workspace/apps/starkgate/web/src/components/UI/BurgerMenuItem/BurgerMenuItem.jsx similarity index 87% rename from src/components/UI/BurgerMenuItem/BurgerMenuItem.js rename to workspace/apps/starkgate/web/src/components/UI/BurgerMenuItem/BurgerMenuItem.jsx index a1725ff3..c4199bfc 100644 --- a/src/components/UI/BurgerMenuItem/BurgerMenuItem.js +++ b/workspace/apps/starkgate/web/src/components/UI/BurgerMenuItem/BurgerMenuItem.jsx @@ -1,7 +1,8 @@ -import {toClasses} from '@starkware-industries/commons-js-utils'; import PropTypes from 'prop-types'; import React from 'react'; +import {toClasses} from '@starkware-webapps/utils-browser'; + import styles from './BurgerMenuItem.module.scss'; export const BurgerMenuItem = ({label, isActive, onClick}) => { diff --git a/src/components/UI/BurgerMenuItem/BurgerMenuItem.module.scss b/workspace/apps/starkgate/web/src/components/UI/BurgerMenuItem/BurgerMenuItem.module.scss similarity index 100% rename from src/components/UI/BurgerMenuItem/BurgerMenuItem.module.scss rename to workspace/apps/starkgate/web/src/components/UI/BurgerMenuItem/BurgerMenuItem.module.scss diff --git a/src/components/UI/Button/Button.js b/workspace/apps/starkgate/web/src/components/UI/Button/Button.jsx similarity index 93% rename from src/components/UI/Button/Button.js rename to workspace/apps/starkgate/web/src/components/UI/Button/Button.jsx index a6d25d82..4f20bbbf 100644 --- a/src/components/UI/Button/Button.js +++ b/workspace/apps/starkgate/web/src/components/UI/Button/Button.jsx @@ -1,8 +1,9 @@ -import {toClasses} from '@starkware-industries/commons-js-utils'; import PropTypes from 'prop-types'; import React, {useState} from 'react'; -import {Loading, LoadingSize} from '../Loading/Loading'; +import {toClasses} from '@starkware-webapps/utils-browser'; +import {Loading, LoadingSize} from '@ui'; + import styles from './Button.module.scss'; export const Button = ({ diff --git a/src/components/UI/Button/Button.module.scss b/workspace/apps/starkgate/web/src/components/UI/Button/Button.module.scss similarity index 100% rename from src/components/UI/Button/Button.module.scss rename to workspace/apps/starkgate/web/src/components/UI/Button/Button.module.scss diff --git a/src/components/UI/ChainSelect/ChainSelect.js b/workspace/apps/starkgate/web/src/components/UI/ChainSelect/ChainSelect.jsx similarity index 74% rename from src/components/UI/ChainSelect/ChainSelect.js rename to workspace/apps/starkgate/web/src/components/UI/ChainSelect/ChainSelect.jsx index d5a1efd6..6f13d1c9 100644 --- a/src/components/UI/ChainSelect/ChainSelect.js +++ b/workspace/apps/starkgate/web/src/components/UI/ChainSelect/ChainSelect.jsx @@ -1,10 +1,11 @@ -import {Select, MenuItem} from '@mui/material'; -import {ChainInfo, ChainType} from '@starkware-industries/commons-js-enums'; -import {openInNewTab} from '@starkware-industries/commons-js-utils'; import React from 'react'; -import {APP_URL_GOERLI, APP_URL_MAINNET} from '../../../config/constants'; -import {useEnvs} from '../../../hooks'; +import {APP_URL_GOERLI, APP_URL_MAINNET} from '@config/constants'; +import {useEnvs} from '@hooks'; +import {MenuItem, Select} from '@mui/material'; +import {ChainInfo, ChainType} from '@starkware-webapps/enums'; +import {openInNewTab} from '@starkware-webapps/utils-browser'; + import {ChainSelectTheme} from './ChainSelect.theme'; export const ChainSelect = () => { diff --git a/src/components/UI/ChainSelect/ChainSelect.theme.js b/workspace/apps/starkgate/web/src/components/UI/ChainSelect/ChainSelect.theme.jsx similarity index 90% rename from src/components/UI/ChainSelect/ChainSelect.theme.js rename to workspace/apps/starkgate/web/src/components/UI/ChainSelect/ChainSelect.theme.jsx index b98043a7..4cd7a331 100644 --- a/src/components/UI/ChainSelect/ChainSelect.theme.js +++ b/workspace/apps/starkgate/web/src/components/UI/ChainSelect/ChainSelect.theme.jsx @@ -1,10 +1,10 @@ -import {createTheme, ThemeProvider} from '@mui/material'; import PropTypes from 'prop-types'; import React from 'react'; -import CollapseIcon from '../../../assets/svg/icons/collapse.svg'; -import SelectedIcon from '../../../assets/svg/icons/selected.svg'; -import {useColors, useFonts} from '../../../hooks'; +import CollapseIcon from '@assets/svg/icons/collapse.svg'; +import SelectedIcon from '@assets/svg/icons/selected.svg'; +import {useColors, useFonts} from '@hooks'; +import {ThemeProvider, createTheme} from '@mui/material'; export const ChainSelectTheme = ({children}) => { const {colorWhite, colorSpaceCadet, colorSpaceCadet2} = useColors(); diff --git a/workspace/apps/starkgate/web/src/components/UI/CheckboxWithText/CheckboxWithText.jsx b/workspace/apps/starkgate/web/src/components/UI/CheckboxWithText/CheckboxWithText.jsx new file mode 100644 index 00000000..714ee436 --- /dev/null +++ b/workspace/apps/starkgate/web/src/components/UI/CheckboxWithText/CheckboxWithText.jsx @@ -0,0 +1,46 @@ +import PropTypes from 'prop-types'; +import React from 'react'; + +import {useColors} from '@hooks'; +import {Checkbox} from '@starkware-webapps/ui'; +import {toClasses} from '@starkware-webapps/utils-browser'; +import {Link, LinkType} from '@ui'; + +import styles from './CheckboxWithText.module.scss'; + +export const CheckboxWithText = ({checked, disabled, message, linkTxt, linkUrl, onChange}) => { + const {colorOrangeSoda} = useColors(); + + return ( +
+
+ +
+
+ {message}{' '} + +
+
+ ); +}; + +CheckboxWithText.propTypes = { + checked: PropTypes.bool, + disabled: PropTypes.bool, + message: PropTypes.string, + linkTxt: PropTypes.string, + linkUrl: PropTypes.string, + onChange: PropTypes.func +}; diff --git a/workspace/apps/starkgate/web/src/components/UI/CheckboxWithText/CheckboxWithText.module.scss b/workspace/apps/starkgate/web/src/components/UI/CheckboxWithText/CheckboxWithText.module.scss new file mode 100644 index 00000000..94eb08eb --- /dev/null +++ b/workspace/apps/starkgate/web/src/components/UI/CheckboxWithText/CheckboxWithText.module.scss @@ -0,0 +1,24 @@ +@import '../../../index'; + +.checkboxWithText { + display: flex; + align-items: center; + + &.disabled { + opacity: 0.5; + + & * { + pointer-events: none !important; + } + } +} + +.message { + font-size: 12px; + line-height: 18px; + color: $--color-white; +} + +.readMore { + color: $--color-very-light-azure; +} diff --git a/src/components/UI/Circle/Circle.js b/workspace/apps/starkgate/web/src/components/UI/Circle/Circle.jsx similarity index 100% rename from src/components/UI/Circle/Circle.js rename to workspace/apps/starkgate/web/src/components/UI/Circle/Circle.jsx diff --git a/src/components/UI/Circle/Circle.module.scss b/workspace/apps/starkgate/web/src/components/UI/Circle/Circle.module.scss similarity index 100% rename from src/components/UI/Circle/Circle.module.scss rename to workspace/apps/starkgate/web/src/components/UI/Circle/Circle.module.scss diff --git a/workspace/apps/starkgate/web/src/components/UI/CircleLogo/CircleLogo.jsx b/workspace/apps/starkgate/web/src/components/UI/CircleLogo/CircleLogo.jsx new file mode 100644 index 00000000..c62c041b --- /dev/null +++ b/workspace/apps/starkgate/web/src/components/UI/CircleLogo/CircleLogo.jsx @@ -0,0 +1,32 @@ +import PropTypes from 'prop-types'; +import React from 'react'; + +import {Circle, DynamicIcon} from '@ui'; + +import styles from './CircleLogo.module.scss'; + +const CIRCLE_LOGO_SIZE_DIFF = 8; + +export const CircleLogoSize = { + XS: 22, + SMALL: 32, + MEDIUM: 40, + LARGE: 50 +}; + +export const CircleLogo = ({color, size, path, background = true}) => { + return path ? ( + +
+ +
+
+ ) : null; +}; + +CircleLogo.propTypes = { + color: PropTypes.string, + size: PropTypes.number, + path: PropTypes.string, + background: PropTypes.bool +}; diff --git a/src/components/UI/CircleLogo/CircleLogo.module.scss b/workspace/apps/starkgate/web/src/components/UI/CircleLogo/CircleLogo.module.scss similarity index 100% rename from src/components/UI/CircleLogo/CircleLogo.module.scss rename to workspace/apps/starkgate/web/src/components/UI/CircleLogo/CircleLogo.module.scss diff --git a/src/components/UI/CollapseExpand/CollapseExpand.js b/workspace/apps/starkgate/web/src/components/UI/CollapseExpand/CollapseExpand.jsx similarity index 77% rename from src/components/UI/CollapseExpand/CollapseExpand.js rename to workspace/apps/starkgate/web/src/components/UI/CollapseExpand/CollapseExpand.jsx index b5ec8d38..e0e9b0e0 100644 --- a/src/components/UI/CollapseExpand/CollapseExpand.js +++ b/workspace/apps/starkgate/web/src/components/UI/CollapseExpand/CollapseExpand.jsx @@ -1,8 +1,9 @@ -import {toClasses} from '@starkware-industries/commons-js-utils'; import PropTypes from 'prop-types'; import React from 'react'; -import {ReactComponent as CollapseExpandIcon} from '../../../assets/svg/icons/collapse.svg'; +import {ReactComponent as CollapseExpandIcon} from '@assets/svg/icons/collapse.svg'; +import {toClasses} from '@starkware-webapps/utils-browser'; + import styles from './CollapseExpand.module.scss'; export const CollapseExpand = ({isCollapsed, size, onClick}) => { diff --git a/src/components/UI/CollapseExpand/CollapseExpand.module.scss b/workspace/apps/starkgate/web/src/components/UI/CollapseExpand/CollapseExpand.module.scss similarity index 100% rename from src/components/UI/CollapseExpand/CollapseExpand.module.scss rename to workspace/apps/starkgate/web/src/components/UI/CollapseExpand/CollapseExpand.module.scss diff --git a/src/components/UI/Divider/Divider.js b/workspace/apps/starkgate/web/src/components/UI/Divider/Divider.jsx similarity index 100% rename from src/components/UI/Divider/Divider.js rename to workspace/apps/starkgate/web/src/components/UI/Divider/Divider.jsx diff --git a/src/components/UI/Divider/Divider.module.scss b/workspace/apps/starkgate/web/src/components/UI/Divider/Divider.module.scss similarity index 100% rename from src/components/UI/Divider/Divider.module.scss rename to workspace/apps/starkgate/web/src/components/UI/Divider/Divider.module.scss diff --git a/workspace/apps/starkgate/web/src/components/UI/DynamicIcon/DynamicIcon.jsx b/workspace/apps/starkgate/web/src/components/UI/DynamicIcon/DynamicIcon.jsx new file mode 100644 index 00000000..bcd753a3 --- /dev/null +++ b/workspace/apps/starkgate/web/src/components/UI/DynamicIcon/DynamicIcon.jsx @@ -0,0 +1,27 @@ +import PropTypes from 'prop-types'; + +import {useQuery} from '@tanstack/react-query'; +import {Image} from '@ui'; + +export const DynamicIcon = ({path, size}) => { + const isUrlPath = path.startsWith('data:image'); + const {data, isLoading} = useQuery({ + queryKey: ['dynamic_import', path], + queryFn: () => import(`@assets/svg/${path}.svg`), + refetchIntervalInBackground: false, + staleTime: Infinity, + enabled: !isUrlPath + }); + + if (isUrlPath) { + return ; + } else if (!isLoading && data?.default) { + return ; + } + return null; +}; + +DynamicIcon.propTypes = { + path: PropTypes.string, + size: PropTypes.number +}; diff --git a/src/components/UI/EthereumWalletButton/EthereumWalletButton.js b/workspace/apps/starkgate/web/src/components/UI/EthereumWalletButton/EthereumWalletButton.jsx similarity index 60% rename from src/components/UI/EthereumWalletButton/EthereumWalletButton.js rename to workspace/apps/starkgate/web/src/components/UI/EthereumWalletButton/EthereumWalletButton.jsx index b3ec5cbc..cc9197cf 100644 --- a/src/components/UI/EthereumWalletButton/EthereumWalletButton.js +++ b/workspace/apps/starkgate/web/src/components/UI/EthereumWalletButton/EthereumWalletButton.jsx @@ -1,9 +1,7 @@ -import {ChainInfo, NetworkType} from '@starkware-industries/commons-js-enums'; - -import {useEnvs} from '../../../hooks'; -import {useIsL1} from '../../../providers/TransferProvider'; -import {useL1Wallet} from '../../../providers/WalletsProvider'; -import {NetworkWalletButton} from '../index'; +import {useEnvs} from '@hooks'; +import {useIsL1, useL1Wallet} from '@providers'; +import {ChainInfo, NetworkType} from '@starkware-webapps/enums'; +import {NetworkWalletButton} from '@ui'; export const EthereumWalletButton = () => { const {account, config, error, status} = useL1Wallet(); diff --git a/src/components/UI/FullScreenContainer/FullScreenContainer.js b/workspace/apps/starkgate/web/src/components/UI/FullScreenContainer/FullScreenContainer.jsx similarity index 100% rename from src/components/UI/FullScreenContainer/FullScreenContainer.js rename to workspace/apps/starkgate/web/src/components/UI/FullScreenContainer/FullScreenContainer.jsx diff --git a/src/components/UI/FullScreenContainer/FullScreenContainer.module.scss b/workspace/apps/starkgate/web/src/components/UI/FullScreenContainer/FullScreenContainer.module.scss similarity index 100% rename from src/components/UI/FullScreenContainer/FullScreenContainer.module.scss rename to workspace/apps/starkgate/web/src/components/UI/FullScreenContainer/FullScreenContainer.module.scss diff --git a/src/components/UI/Icon/Icon.js b/workspace/apps/starkgate/web/src/components/UI/Icon/Icon.jsx similarity index 89% rename from src/components/UI/Icon/Icon.js rename to workspace/apps/starkgate/web/src/components/UI/Icon/Icon.jsx index 0d51e0be..76267f60 100644 --- a/src/components/UI/Icon/Icon.js +++ b/workspace/apps/starkgate/web/src/components/UI/Icon/Icon.jsx @@ -1,7 +1,8 @@ -import {toClasses} from '@starkware-industries/commons-js-utils'; import PropTypes from 'prop-types'; import React from 'react'; +import {toClasses} from '@starkware-webapps/utils-browser'; + import styles from './Icon.module.scss'; export const Icon = ({isClickable, onClick, style, className, children}) => ( diff --git a/src/components/UI/Icon/Icon.module.scss b/workspace/apps/starkgate/web/src/components/UI/Icon/Icon.module.scss similarity index 100% rename from src/components/UI/Icon/Icon.module.scss rename to workspace/apps/starkgate/web/src/components/UI/Icon/Icon.module.scss diff --git a/workspace/apps/starkgate/web/src/components/UI/Image/Image.jsx b/workspace/apps/starkgate/web/src/components/UI/Image/Image.jsx new file mode 100644 index 00000000..3345ebb9 --- /dev/null +++ b/workspace/apps/starkgate/web/src/components/UI/Image/Image.jsx @@ -0,0 +1,21 @@ +import PropTypes from 'prop-types'; +import React from 'react'; + +import styles from './Image.module.scss'; + +export const Image = ({src, width, height, forceSizes = false}) => { + const style = { + maxWidth: `${width}px`, + maxHeight: `${height}px`, + ...(forceSizes && {width: `${width}px`, height: `${height}px`}) + }; + + return ; +}; + +Image.propTypes = { + src: PropTypes.string, + width: PropTypes.number, + height: PropTypes.number, + forceSizes: PropTypes.bool +}; diff --git a/workspace/apps/starkgate/web/src/components/UI/Image/Image.module.scss b/workspace/apps/starkgate/web/src/components/UI/Image/Image.module.scss new file mode 100644 index 00000000..a7417aa3 --- /dev/null +++ b/workspace/apps/starkgate/web/src/components/UI/Image/Image.module.scss @@ -0,0 +1,5 @@ +.image { + display: block; + width: auto; + height: auto; +} diff --git a/src/components/UI/Input/Input.js b/workspace/apps/starkgate/web/src/components/UI/Input/Input.jsx similarity index 82% rename from src/components/UI/Input/Input.js rename to workspace/apps/starkgate/web/src/components/UI/Input/Input.jsx index ccae76b5..00938225 100644 --- a/src/components/UI/Input/Input.js +++ b/workspace/apps/starkgate/web/src/components/UI/Input/Input.jsx @@ -1,8 +1,9 @@ -import {toClasses} from '@starkware-industries/commons-js-utils'; import PropTypes from 'prop-types'; import React, {forwardRef} from 'react'; -import styles from './Input.Module.scss'; +import {toClasses} from '@starkware-webapps/utils-browser'; + +import styles from './Input.module.scss'; export const Input = forwardRef(({isDisabled, placeholderColor, style, ...props}, ref) => ( - {text || link} + {text || link} {icon} ); }; Link.propTypes = { className: PropTypes.string, + icon: PropTypes.object, link: PropTypes.string, text: PropTypes.string, type: PropTypes.string, diff --git a/src/components/UI/Link/Link.module.scss b/workspace/apps/starkgate/web/src/components/UI/Link/Link.module.scss similarity index 100% rename from src/components/UI/Link/Link.module.scss rename to workspace/apps/starkgate/web/src/components/UI/Link/Link.module.scss diff --git a/src/components/UI/LinkButton/LinkButton.js b/workspace/apps/starkgate/web/src/components/UI/LinkButton/LinkButton.jsx similarity index 77% rename from src/components/UI/LinkButton/LinkButton.js rename to workspace/apps/starkgate/web/src/components/UI/LinkButton/LinkButton.jsx index f9109605..df1b56fd 100644 --- a/src/components/UI/LinkButton/LinkButton.js +++ b/workspace/apps/starkgate/web/src/components/UI/LinkButton/LinkButton.jsx @@ -1,8 +1,9 @@ -import {openInNewTab, toClasses} from '@starkware-industries/commons-js-utils'; import PropTypes from 'prop-types'; import React from 'react'; -import {ReactComponent as RedirectIcon} from '../../../assets/svg/icons/redirect.svg'; +import {ReactComponent as RedirectIcon} from '@assets/svg/icons/redirect.svg'; +import {openInNewTab, toClasses} from '@starkware-webapps/utils-browser'; + import styles from './LinkButton.module.scss'; export const LinkButton = ({text, url, isDisabled, onClick}) => { diff --git a/src/components/UI/LinkButton/LinkButton.module.scss b/workspace/apps/starkgate/web/src/components/UI/LinkButton/LinkButton.module.scss similarity index 100% rename from src/components/UI/LinkButton/LinkButton.module.scss rename to workspace/apps/starkgate/web/src/components/UI/LinkButton/LinkButton.module.scss diff --git a/src/components/UI/Loading/Loading.js b/workspace/apps/starkgate/web/src/components/UI/Loading/Loading.jsx similarity index 99% rename from src/components/UI/Loading/Loading.js rename to workspace/apps/starkgate/web/src/components/UI/Loading/Loading.jsx index 94d14112..ad486562 100644 --- a/src/components/UI/Loading/Loading.js +++ b/workspace/apps/starkgate/web/src/components/UI/Loading/Loading.jsx @@ -1,7 +1,8 @@ -import {CircularProgress, LinearProgress} from '@mui/material'; import PropTypes from 'prop-types'; import React from 'react'; +import {CircularProgress, LinearProgress} from '@mui/material'; + export const LoadingType = { CIRCULAR: 0, LINEAR: 1 diff --git a/src/components/UI/LoginWalletButton/LoginWalletButton.js b/workspace/apps/starkgate/web/src/components/UI/LoginWalletButton/LoginWalletButton.jsx similarity index 58% rename from src/components/UI/LoginWalletButton/LoginWalletButton.js rename to workspace/apps/starkgate/web/src/components/UI/LoginWalletButton/LoginWalletButton.jsx index 3c6f9e7f..b015aa80 100644 --- a/src/components/UI/LoginWalletButton/LoginWalletButton.js +++ b/workspace/apps/starkgate/web/src/components/UI/LoginWalletButton/LoginWalletButton.jsx @@ -1,10 +1,9 @@ -import {NetworkType, WalletStatus} from '@starkware-industries/commons-js-enums'; import React from 'react'; -import {useConnectWalletTracking, useTransferTranslation} from '../../../hooks'; -import {useLoginModal} from '../../../providers/ModalProvider'; -import {useWalletsStatus} from '../../../providers/WalletsProvider'; -import {MainMenuButton} from '../MainMenuButton/MainMenuButton'; +import {useConnectWalletTracking, useTransferTranslation} from '@hooks'; +import {useLoginModal, useWalletsStatus} from '@providers'; +import {NetworkType, isConnected} from '@starkware-webapps/enums'; +import {MainMenuButton} from '@ui'; export const LoginWalletButton = props => { const {statusL1} = useWalletsStatus(); @@ -13,7 +12,7 @@ export const LoginWalletButton = props => { const [trackConnectWalletClick] = useConnectWalletTracking(); const handleConnectWallets = () => { - const networkName = statusL1 === WalletStatus.CONNECTED ? NetworkType.L2 : NetworkType.L1; + const networkName = isConnected(statusL1) ? NetworkType.L2 : NetworkType.L1; trackConnectWalletClick(); showLoginModal(networkName); }; diff --git a/src/components/UI/LogoutButton/LogoutButton.js b/workspace/apps/starkgate/web/src/components/UI/LogoutButton/LogoutButton.jsx similarity index 86% rename from src/components/UI/LogoutButton/LogoutButton.js rename to workspace/apps/starkgate/web/src/components/UI/LogoutButton/LogoutButton.jsx index 887c1a77..8a7d500c 100644 --- a/src/components/UI/LogoutButton/LogoutButton.js +++ b/workspace/apps/starkgate/web/src/components/UI/LogoutButton/LogoutButton.jsx @@ -1,8 +1,8 @@ import PropTypes from 'prop-types'; import React from 'react'; -import {useAccountTranslation, useColors} from '../../../hooks'; -import {Button} from '../index'; +import {useAccountTranslation, useColors} from '@hooks'; +import {Button} from '@ui'; export const LogoutButton = ({onClick, isDisabled}) => { const {logoutBtnTxt} = useAccountTranslation(); diff --git a/src/components/UI/MainMenuButton/MainMenuButton.js b/workspace/apps/starkgate/web/src/components/UI/MainMenuButton/MainMenuButton.jsx similarity index 79% rename from src/components/UI/MainMenuButton/MainMenuButton.js rename to workspace/apps/starkgate/web/src/components/UI/MainMenuButton/MainMenuButton.jsx index e4e479d5..7b6f5fb5 100644 --- a/src/components/UI/MainMenuButton/MainMenuButton.js +++ b/workspace/apps/starkgate/web/src/components/UI/MainMenuButton/MainMenuButton.jsx @@ -1,9 +1,10 @@ -import {toClasses} from '@starkware-industries/commons-js-utils'; import PropTypes from 'prop-types'; import React from 'react'; -import {useColors} from '../../../hooks'; -import {Button} from '../index'; +import {useColors} from '@hooks'; +import {toClasses} from '@starkware-webapps/utils-browser'; +import {Button} from '@ui'; + import styles from './MainMenuButton.module.scss'; export const MainMenuButton = props => { diff --git a/src/components/UI/MainMenuButton/MainMenuButton.module.scss b/workspace/apps/starkgate/web/src/components/UI/MainMenuButton/MainMenuButton.module.scss similarity index 100% rename from src/components/UI/MainMenuButton/MainMenuButton.module.scss rename to workspace/apps/starkgate/web/src/components/UI/MainMenuButton/MainMenuButton.module.scss diff --git a/src/components/UI/MaxButton/MaxButton.js b/workspace/apps/starkgate/web/src/components/UI/MaxButton/MaxButton.jsx similarity index 86% rename from src/components/UI/MaxButton/MaxButton.js rename to workspace/apps/starkgate/web/src/components/UI/MaxButton/MaxButton.jsx index 2fb32ab6..daf9fce8 100644 --- a/src/components/UI/MaxButton/MaxButton.js +++ b/workspace/apps/starkgate/web/src/components/UI/MaxButton/MaxButton.jsx @@ -1,7 +1,8 @@ import PropTypes from 'prop-types'; import React from 'react'; -import {useTransferTranslation} from '../../../hooks'; +import {useTransferTranslation} from '@hooks'; + import styles from './MaxButton.module.scss'; export const MaxButton = ({onClick}) => { diff --git a/src/components/UI/MaxButton/MaxButton.module.scss b/workspace/apps/starkgate/web/src/components/UI/MaxButton/MaxButton.module.scss similarity index 100% rename from src/components/UI/MaxButton/MaxButton.module.scss rename to workspace/apps/starkgate/web/src/components/UI/MaxButton/MaxButton.module.scss diff --git a/src/components/UI/Menu/Menu.js b/workspace/apps/starkgate/web/src/components/UI/Menu/Menu.jsx similarity index 89% rename from src/components/UI/Menu/Menu.js rename to workspace/apps/starkgate/web/src/components/UI/Menu/Menu.jsx index e9944189..c62a892c 100644 --- a/src/components/UI/Menu/Menu.js +++ b/workspace/apps/starkgate/web/src/components/UI/Menu/Menu.jsx @@ -1,7 +1,8 @@ -import {toClasses} from '@starkware-industries/commons-js-utils'; import PropTypes from 'prop-types'; import React, {useEffect, useState} from 'react'; +import {toClasses} from '@starkware-webapps/utils-browser'; + import styles from './Menu.module.scss'; export const Menu = ({children}) => { diff --git a/src/components/UI/Menu/Menu.module.scss b/workspace/apps/starkgate/web/src/components/UI/Menu/Menu.module.scss similarity index 100% rename from src/components/UI/Menu/Menu.module.scss rename to workspace/apps/starkgate/web/src/components/UI/Menu/Menu.module.scss diff --git a/src/components/UI/MenuBackground/MenuBackground.js b/workspace/apps/starkgate/web/src/components/UI/MenuBackground/MenuBackground.jsx similarity index 100% rename from src/components/UI/MenuBackground/MenuBackground.js rename to workspace/apps/starkgate/web/src/components/UI/MenuBackground/MenuBackground.jsx diff --git a/src/components/UI/MenuBackground/MenuBackground.module.scss b/workspace/apps/starkgate/web/src/components/UI/MenuBackground/MenuBackground.module.scss similarity index 100% rename from src/components/UI/MenuBackground/MenuBackground.module.scss rename to workspace/apps/starkgate/web/src/components/UI/MenuBackground/MenuBackground.module.scss diff --git a/src/components/UI/MenuTitle/MenuTitle.js b/workspace/apps/starkgate/web/src/components/UI/MenuTitle/MenuTitle.jsx similarity index 100% rename from src/components/UI/MenuTitle/MenuTitle.js rename to workspace/apps/starkgate/web/src/components/UI/MenuTitle/MenuTitle.jsx diff --git a/src/components/UI/MenuTitle/MenuTitle.module.scss b/workspace/apps/starkgate/web/src/components/UI/MenuTitle/MenuTitle.module.scss similarity index 100% rename from src/components/UI/MenuTitle/MenuTitle.module.scss rename to workspace/apps/starkgate/web/src/components/UI/MenuTitle/MenuTitle.module.scss diff --git a/workspace/apps/starkgate/web/src/components/UI/Modal/BlockedAddressModal/BlockedAddressModal.jsx b/workspace/apps/starkgate/web/src/components/UI/Modal/BlockedAddressModal/BlockedAddressModal.jsx new file mode 100644 index 00000000..a8cbcddb --- /dev/null +++ b/workspace/apps/starkgate/web/src/components/UI/Modal/BlockedAddressModal/BlockedAddressModal.jsx @@ -0,0 +1,15 @@ +import {useBlockedAddressModalTranslation} from '@hooks'; + +import styles from './BlockedAddressModal.module.scss'; + +const BlockedAddressModal = () => { + const {descriptionTxt} = useBlockedAddressModalTranslation(); + + return ( +
+
{descriptionTxt}
+
+ ); +}; + +export default BlockedAddressModal; diff --git a/src/components/UI/Modal/BlockedAddressModal/BlockedAddressModal.module.scss b/workspace/apps/starkgate/web/src/components/UI/Modal/BlockedAddressModal/BlockedAddressModal.module.scss similarity index 53% rename from src/components/UI/Modal/BlockedAddressModal/BlockedAddressModal.module.scss rename to workspace/apps/starkgate/web/src/components/UI/Modal/BlockedAddressModal/BlockedAddressModal.module.scss index ed3d44ed..4a34a54b 100644 --- a/src/components/UI/Modal/BlockedAddressModal/BlockedAddressModal.module.scss +++ b/workspace/apps/starkgate/web/src/components/UI/Modal/BlockedAddressModal/BlockedAddressModal.module.scss @@ -4,12 +4,4 @@ color: $--color-black; margin: 0 auto 24px; line-height: 24px; - - .complianceEmailLink { - color: $--color-orange-soda; - } - - .compliance { - margin-top: 20px; - } } diff --git a/src/components/UI/Modal/ErrorModal/ErrorModal.js b/workspace/apps/starkgate/web/src/components/UI/Modal/ErrorModal/ErrorModal.jsx similarity index 100% rename from src/components/UI/Modal/ErrorModal/ErrorModal.js rename to workspace/apps/starkgate/web/src/components/UI/Modal/ErrorModal/ErrorModal.jsx diff --git a/src/components/UI/Modal/ErrorModal/ErrorModal.module.scss b/workspace/apps/starkgate/web/src/components/UI/Modal/ErrorModal/ErrorModal.module.scss similarity index 100% rename from src/components/UI/Modal/ErrorModal/ErrorModal.module.scss rename to workspace/apps/starkgate/web/src/components/UI/Modal/ErrorModal/ErrorModal.module.scss diff --git a/src/components/UI/Modal/LoginModal/LoginModal.js b/workspace/apps/starkgate/web/src/components/UI/Modal/LoginModal/LoginModal.jsx similarity index 71% rename from src/components/UI/Modal/LoginModal/LoginModal.js rename to workspace/apps/starkgate/web/src/components/UI/Modal/LoginModal/LoginModal.jsx index 80ebce48..6064de02 100644 --- a/src/components/UI/Modal/LoginModal/LoginModal.js +++ b/workspace/apps/starkgate/web/src/components/UI/Modal/LoginModal/LoginModal.jsx @@ -1,14 +1,12 @@ -import {NetworkType, WalletStatus} from '@starkware-industries/commons-js-enums'; -import {useDidMountEffect, useLogger} from '@starkware-industries/commons-js-hooks'; -import {evaluate} from '@starkware-industries/commons-js-utils'; import PropTypes from 'prop-types'; import React, {useEffect, useState} from 'react'; -import {useLoginTracking, useLoginTranslation, useWalletHandlers} from '../../../../hooks'; -import {useLogin} from '../../../../providers/AppProvider'; -import {useHideModal} from '../../../../providers/ModalProvider'; -import {useWalletsStatus} from '../../../../providers/WalletsProvider'; -import {MultiChoiceMenu} from '../../index'; +import {useLoginTracking, useLoginTranslation, useWalletHandlers} from '@hooks'; +import {useHideModal, useLogin, useWalletsStatus} from '@providers'; +import {NetworkType, isConnected, isL1Network, isL2Network} from '@starkware-webapps/enums'; +import {useDidMountEffect, useLogger} from '@starkware-webapps/ui'; +import {evaluate} from '@starkware-webapps/utils'; +import {MultiChoiceMenu} from '@ui'; const LoginModal = ({networkName}) => { const logger = useLogger('LoginModal'); @@ -22,11 +20,11 @@ const LoginModal = ({networkName}) => { const hideModal = useHideModal(); useDidMountEffect(() => { - if (network === NetworkType.L2 && statusL2 === WalletStatus.CONNECTED) { + if (isL2Network(network) && isConnected(statusL2)) { setNetwork(NetworkType.L1); } - if (network === NetworkType.L1 && statusL1 === WalletStatus.CONNECTED) { + if (isL1Network(network) && isConnected(statusL1)) { setNetwork(NetworkType.L2); } }, [statusL1, statusL2]); @@ -48,13 +46,13 @@ const LoginModal = ({networkName}) => { useEffect(() => { if (error) { - trackLoginError(error); + trackLoginError({error}); } }, [error]); const walletChoiceClick = async walletHandler => { const {name} = walletHandler; - trackWalletClick(name); + trackWalletClick({name}); logger.log(`connect to ${name}`); await walletHandler.connect(); }; diff --git a/src/components/UI/Modal/LoginModal/LoginModal.module.scss b/workspace/apps/starkgate/web/src/components/UI/Modal/LoginModal/LoginModal.module.scss similarity index 100% rename from src/components/UI/Modal/LoginModal/LoginModal.module.scss rename to workspace/apps/starkgate/web/src/components/UI/Modal/LoginModal/LoginModal.module.scss diff --git a/workspace/apps/starkgate/web/src/components/UI/Modal/Modal/Modal.jsx b/workspace/apps/starkgate/web/src/components/UI/Modal/Modal/Modal.jsx new file mode 100644 index 00000000..f9a4050e --- /dev/null +++ b/workspace/apps/starkgate/web/src/components/UI/Modal/Modal/Modal.jsx @@ -0,0 +1,77 @@ +import PropTypes from 'prop-types'; +import {createPortal} from 'react-dom'; + +import {toClasses} from '@starkware-webapps/utils-browser'; + +import styles from './Modal.module.scss'; + +export const ModalSize = { + AUTO: { + width: 'auto', + height: 'auto' + }, + SMALL: { + width: 450, + height: 200 + }, + MEDIUM: { + width: 550, + height: 300 + }, + LARGE: { + width: 700, + height: 500 + } +}; + +export const ModalType = { + INFO: 'info', + SUCCESS: 'success', + WARNING: 'warning', + ERROR: 'error' +}; + +export const Modal = ({ + show, + type = ModalType.INFO, + size = ModalSize.MEDIUM, + children, + containerStyle, + exitable, + hideModal +}) => { + const {width} = size; + + const ignoreClickOnBlurryPart = e => { + e.stopPropagation(); + }; + + const handleClickOnBlurryPart = () => { + exitable && hideModal(); + }; + + return show + ? createPortal( +
+
+ {children} +
+
, + document.body + ) + : null; +}; + +Modal.propTypes = { + show: PropTypes.bool, + type: PropTypes.string, + size: PropTypes.object, + containerStyle: PropTypes.object, + exitable: PropTypes.bool, + hideModal: PropTypes.func, + children: PropTypes.oneOfType([PropTypes.object, PropTypes.array]) +}; diff --git a/src/components/UI/Modal/Modal/Modal.module.scss b/workspace/apps/starkgate/web/src/components/UI/Modal/Modal/Modal.module.scss similarity index 96% rename from src/components/UI/Modal/Modal/Modal.module.scss rename to workspace/apps/starkgate/web/src/components/UI/Modal/Modal/Modal.module.scss index 718a7641..aab22a62 100644 --- a/src/components/UI/Modal/Modal/Modal.module.scss +++ b/workspace/apps/starkgate/web/src/components/UI/Modal/Modal/Modal.module.scss @@ -13,7 +13,7 @@ .container { top: 50%; left: 50%; - position: absolute; + position: relative; transform: translate(-50%, -50%); background: $--color-white; box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1); diff --git a/src/components/UI/Modal/ModalBody/ModalBody.js b/workspace/apps/starkgate/web/src/components/UI/Modal/ModalBody/ModalBody.jsx similarity index 86% rename from src/components/UI/Modal/ModalBody/ModalBody.js rename to workspace/apps/starkgate/web/src/components/UI/Modal/ModalBody/ModalBody.jsx index 1ba87580..388e0b79 100644 --- a/src/components/UI/Modal/ModalBody/ModalBody.js +++ b/workspace/apps/starkgate/web/src/components/UI/Modal/ModalBody/ModalBody.jsx @@ -1,7 +1,8 @@ -import {toClasses} from '@starkware-industries/commons-js-utils'; import PropTypes from 'prop-types'; import React from 'react'; +import {toClasses} from '@starkware-webapps/utils-browser'; + import {ModalType} from '../Modal/Modal'; import styles from './ModalBody.module.scss'; diff --git a/src/components/UI/Modal/ModalBody/ModalBody.module.scss b/workspace/apps/starkgate/web/src/components/UI/Modal/ModalBody/ModalBody.module.scss similarity index 100% rename from src/components/UI/Modal/ModalBody/ModalBody.module.scss rename to workspace/apps/starkgate/web/src/components/UI/Modal/ModalBody/ModalBody.module.scss diff --git a/workspace/apps/starkgate/web/src/components/UI/Modal/ModalFooter/ModalFooter.jsx b/workspace/apps/starkgate/web/src/components/UI/Modal/ModalFooter/ModalFooter.jsx new file mode 100644 index 00000000..6d6edd80 --- /dev/null +++ b/workspace/apps/starkgate/web/src/components/UI/Modal/ModalFooter/ModalFooter.jsx @@ -0,0 +1,36 @@ +import PropTypes from 'prop-types'; +import React from 'react'; + +import {useColors} from '@hooks'; +import {toClasses} from '@starkware-webapps/utils-browser'; +import {Button, ModalType} from '@ui'; + +import styles from './ModalFooter.module.scss'; + +export const ModalFooter = ({type, onClose, buttonProps, children}) => { + const {colorJasper, colorIndigo, colorWhite} = useColors(); + const color = type === ModalType.ERROR ? colorJasper : colorIndigo; + + return ( +
+ {children} +
+ ); +}; + +ModalFooter.propTypes = { + type: PropTypes.string, + buttonProps: PropTypes.object, + onClose: PropTypes.func, + children: PropTypes.oneOfType([PropTypes.object, PropTypes.array]) +}; diff --git a/src/components/UI/Modal/ModalFooter/ModalFooter.module.scss b/workspace/apps/starkgate/web/src/components/UI/Modal/ModalFooter/ModalFooter.module.scss similarity index 100% rename from src/components/UI/Modal/ModalFooter/ModalFooter.module.scss rename to workspace/apps/starkgate/web/src/components/UI/Modal/ModalFooter/ModalFooter.module.scss diff --git a/src/components/UI/Modal/ModalHeader/ModalHeader.js b/workspace/apps/starkgate/web/src/components/UI/Modal/ModalHeader/ModalHeader.jsx similarity index 86% rename from src/components/UI/Modal/ModalHeader/ModalHeader.js rename to workspace/apps/starkgate/web/src/components/UI/Modal/ModalHeader/ModalHeader.jsx index bffd2662..af391061 100644 --- a/src/components/UI/Modal/ModalHeader/ModalHeader.js +++ b/workspace/apps/starkgate/web/src/components/UI/Modal/ModalHeader/ModalHeader.jsx @@ -1,7 +1,8 @@ -import {toClasses} from '@starkware-industries/commons-js-utils'; import PropTypes from 'prop-types'; import React from 'react'; +import {toClasses} from '@starkware-webapps/utils-browser'; + import {ModalType} from '../Modal/Modal'; import styles from './ModalHeader.module.scss'; diff --git a/src/components/UI/Modal/ModalHeader/ModalHeader.module.scss b/workspace/apps/starkgate/web/src/components/UI/Modal/ModalHeader/ModalHeader.module.scss similarity index 100% rename from src/components/UI/Modal/ModalHeader/ModalHeader.module.scss rename to workspace/apps/starkgate/web/src/components/UI/Modal/ModalHeader/ModalHeader.module.scss diff --git a/src/components/UI/Modal/ModalHeaderWithIcon/ModalHeaderWithIcon.js b/workspace/apps/starkgate/web/src/components/UI/Modal/ModalHeaderWithIcon/ModalHeaderWithIcon.jsx similarity index 95% rename from src/components/UI/Modal/ModalHeaderWithIcon/ModalHeaderWithIcon.js rename to workspace/apps/starkgate/web/src/components/UI/Modal/ModalHeaderWithIcon/ModalHeaderWithIcon.jsx index 154ba99d..117f6d9a 100644 --- a/src/components/UI/Modal/ModalHeaderWithIcon/ModalHeaderWithIcon.js +++ b/workspace/apps/starkgate/web/src/components/UI/Modal/ModalHeaderWithIcon/ModalHeaderWithIcon.jsx @@ -16,7 +16,7 @@ const ModalHeaderWithIcon = ({title, subtitle, icon: Icon}) => { ModalHeaderWithIcon.propTypes = { title: PropTypes.string, subtitle: PropTypes.string, - icon: PropTypes.object + icon: PropTypes.func }; export default ModalHeaderWithIcon; diff --git a/src/components/UI/Modal/ModalHeaderWithIcon/ModalHeaderWithIcon.module.scss b/workspace/apps/starkgate/web/src/components/UI/Modal/ModalHeaderWithIcon/ModalHeaderWithIcon.module.scss similarity index 100% rename from src/components/UI/Modal/ModalHeaderWithIcon/ModalHeaderWithIcon.module.scss rename to workspace/apps/starkgate/web/src/components/UI/Modal/ModalHeaderWithIcon/ModalHeaderWithIcon.module.scss diff --git a/src/components/UI/Modal/ModalText/ModalText.js b/workspace/apps/starkgate/web/src/components/UI/Modal/ModalText/ModalText.jsx similarity index 100% rename from src/components/UI/Modal/ModalText/ModalText.js rename to workspace/apps/starkgate/web/src/components/UI/Modal/ModalText/ModalText.jsx diff --git a/src/components/UI/Modal/ModalText/ModalText.module.scss b/workspace/apps/starkgate/web/src/components/UI/Modal/ModalText/ModalText.module.scss similarity index 100% rename from src/components/UI/Modal/ModalText/ModalText.module.scss rename to workspace/apps/starkgate/web/src/components/UI/Modal/ModalText/ModalText.module.scss diff --git a/src/components/UI/Modal/ModalTitle/ModalTitle.js b/workspace/apps/starkgate/web/src/components/UI/Modal/ModalTitle/ModalTitle.jsx similarity index 100% rename from src/components/UI/Modal/ModalTitle/ModalTitle.js rename to workspace/apps/starkgate/web/src/components/UI/Modal/ModalTitle/ModalTitle.jsx diff --git a/src/components/UI/Modal/ModalTitle/ModalTitle.module.scss b/workspace/apps/starkgate/web/src/components/UI/Modal/ModalTitle/ModalTitle.module.scss similarity index 100% rename from src/components/UI/Modal/ModalTitle/ModalTitle.module.scss rename to workspace/apps/starkgate/web/src/components/UI/Modal/ModalTitle/ModalTitle.module.scss diff --git a/src/components/UI/Modal/ModalWrapper.js b/workspace/apps/starkgate/web/src/components/UI/Modal/ModalWrapper.jsx similarity index 89% rename from src/components/UI/Modal/ModalWrapper.js rename to workspace/apps/starkgate/web/src/components/UI/Modal/ModalWrapper.jsx index 9eb5c907..27afd51f 100644 --- a/src/components/UI/Modal/ModalWrapper.js +++ b/workspace/apps/starkgate/web/src/components/UI/Modal/ModalWrapper.jsx @@ -1,6 +1,6 @@ -import React, {lazy, Suspense} from 'react'; +import React, {Suspense, lazy} from 'react'; -import {useHideModal, useModal} from '../../../providers/ModalProvider'; +import {useHideModal, useModal} from '@providers'; import { DynamicIcon, Loading, @@ -9,9 +9,9 @@ import { ModalBody, ModalFooter, ModalHeader, + ModalText, ModalTitle -} from '../index'; -import {ModalText} from './ModalText/ModalText'; +} from '@ui'; export const ModalWrapper = () => { const modal = useModal(); @@ -27,7 +27,7 @@ export const ModalWrapper = () => { const getComponents = components => { return components ? components.map(c => ({ - component: lazy(() => import(`../../${c.path}`)), + component: lazy(c.import), props: c.props })) : []; diff --git a/src/components/UI/Modal/OnboardingModal/OnboardingModal.js b/workspace/apps/starkgate/web/src/components/UI/Modal/OnboardingModal/OnboardingModal.jsx similarity index 88% rename from src/components/UI/Modal/OnboardingModal/OnboardingModal.js rename to workspace/apps/starkgate/web/src/components/UI/Modal/OnboardingModal/OnboardingModal.jsx index 7c5a630f..ee332a8d 100644 --- a/src/components/UI/Modal/OnboardingModal/OnboardingModal.js +++ b/workspace/apps/starkgate/web/src/components/UI/Modal/OnboardingModal/OnboardingModal.jsx @@ -1,6 +1,7 @@ import React from 'react'; -import {useOnboardingModalTranslation} from '../../../../hooks'; +import {useOnboardingModalTranslation} from '@hooks'; + import styles from './OnboardingModal.module.scss'; const OnboardingModal = () => { diff --git a/src/components/UI/Modal/OnboardingModal/OnboardingModal.module.scss b/workspace/apps/starkgate/web/src/components/UI/Modal/OnboardingModal/OnboardingModal.module.scss similarity index 100% rename from src/components/UI/Modal/OnboardingModal/OnboardingModal.module.scss rename to workspace/apps/starkgate/web/src/components/UI/Modal/OnboardingModal/OnboardingModal.module.scss diff --git a/src/components/UI/Modal/ProgressModal/ProgressModalBody/ProgressModalBody.js b/workspace/apps/starkgate/web/src/components/UI/Modal/ProgressModal/ProgressModalBody/ProgressModalBody.jsx similarity index 88% rename from src/components/UI/Modal/ProgressModal/ProgressModalBody/ProgressModalBody.js rename to workspace/apps/starkgate/web/src/components/UI/Modal/ProgressModal/ProgressModalBody/ProgressModalBody.jsx index 8340b705..54df21cb 100644 --- a/src/components/UI/Modal/ProgressModal/ProgressModalBody/ProgressModalBody.js +++ b/workspace/apps/starkgate/web/src/components/UI/Modal/ProgressModal/ProgressModalBody/ProgressModalBody.jsx @@ -1,7 +1,8 @@ import PropTypes from 'prop-types'; import React from 'react'; -import {ModalText} from '../../ModalText/ModalText'; +import {ModalText} from '@ui'; + import styles from './ProgressModalBody.module.scss'; const ProgressModalBody = ({message}) => { diff --git a/src/components/UI/Modal/ProgressModal/ProgressModalBody/ProgressModalBody.module.scss b/workspace/apps/starkgate/web/src/components/UI/Modal/ProgressModal/ProgressModalBody/ProgressModalBody.module.scss similarity index 100% rename from src/components/UI/Modal/ProgressModal/ProgressModalBody/ProgressModalBody.module.scss rename to workspace/apps/starkgate/web/src/components/UI/Modal/ProgressModal/ProgressModalBody/ProgressModalBody.module.scss diff --git a/src/components/UI/Modal/ProgressModal/ProgressModalHeader/ProgressModalHeader.js b/workspace/apps/starkgate/web/src/components/UI/Modal/ProgressModal/ProgressModalHeader/ProgressModalHeader.jsx similarity index 85% rename from src/components/UI/Modal/ProgressModal/ProgressModalHeader/ProgressModalHeader.js rename to workspace/apps/starkgate/web/src/components/UI/Modal/ProgressModal/ProgressModalHeader/ProgressModalHeader.jsx index 0a5836cb..0fcd1eb0 100644 --- a/src/components/UI/Modal/ProgressModal/ProgressModalHeader/ProgressModalHeader.js +++ b/workspace/apps/starkgate/web/src/components/UI/Modal/ProgressModal/ProgressModalHeader/ProgressModalHeader.jsx @@ -1,7 +1,8 @@ import PropTypes from 'prop-types'; import React from 'react'; -import {Loading, LoadingType, LoadingSize} from '../../../Loading/Loading'; +import {Loading, LoadingSize, LoadingType} from '@ui'; + import styles from './ProgressModalHeader.module.scss'; const ProgressModalHeader = ({title}) => { diff --git a/src/components/UI/Modal/ProgressModal/ProgressModalHeader/ProgressModalHeader.module.scss b/workspace/apps/starkgate/web/src/components/UI/Modal/ProgressModal/ProgressModalHeader/ProgressModalHeader.module.scss similarity index 100% rename from src/components/UI/Modal/ProgressModal/ProgressModalHeader/ProgressModalHeader.module.scss rename to workspace/apps/starkgate/web/src/components/UI/Modal/ProgressModal/ProgressModalHeader/ProgressModalHeader.module.scss diff --git a/src/components/UI/Modal/ProgressModal/index.js b/workspace/apps/starkgate/web/src/components/UI/Modal/ProgressModal/index.jsx similarity index 100% rename from src/components/UI/Modal/ProgressModal/index.js rename to workspace/apps/starkgate/web/src/components/UI/Modal/ProgressModal/index.jsx diff --git a/workspace/apps/starkgate/web/src/components/UI/Modal/TransactionSubmittedModal/TransactionSubmittedModalBody/TransactionSubmittedModalBody.jsx b/workspace/apps/starkgate/web/src/components/UI/Modal/TransactionSubmittedModal/TransactionSubmittedModalBody/TransactionSubmittedModalBody.jsx new file mode 100644 index 00000000..e1d74bed --- /dev/null +++ b/workspace/apps/starkgate/web/src/components/UI/Modal/TransactionSubmittedModal/TransactionSubmittedModalBody/TransactionSubmittedModalBody.jsx @@ -0,0 +1,48 @@ +import PropTypes from 'prop-types'; +import React from 'react'; + +import {useColors, useTransactionSubmittedModalTranslation} from '@hooks'; +import {isDeposit, isWithdrawal} from '@starkgate/shared'; +import {Alert, AlertType, ModalText} from '@ui'; + +import styles from './TransactionSubmittedModalBody.module.scss'; + +const TransactionSubmittedModalBody = ({transfer}) => { + const { + completeTransferToL1Txt, + transferToL1Txt, + transferToL2Txt, + transferToL2AlertTxt, + transferAlertTitle + } = useTransactionSubmittedModalTranslation(); + const {colorIris} = useColors(); + const {type, l2TxHash, l1TxHash, fastWithdrawal, autoWithdrawal} = transfer; + const isTransferCompleted = l1TxHash && l2TxHash; + + const textMessage = isDeposit(type) + ? transferToL2Txt + : isTransferCompleted + ? completeTransferToL1Txt + : fastWithdrawal || autoWithdrawal + ? '' + : transferToL1Txt; + + const textStyle = { + ...(isWithdrawal(type) && !isTransferCompleted ? {color: colorIris} : {width: '50%'}) + }; + + return ( +
+ {textMessage} + {isDeposit(type) && ( + + )} +
+ ); +}; + +TransactionSubmittedModalBody.propTypes = { + transfer: PropTypes.object +}; + +export default TransactionSubmittedModalBody; diff --git a/src/components/UI/Modal/TransactionSubmittedModal/TransactionSubmittedModalBody/TransactionSubmittedModalBody.module.scss b/workspace/apps/starkgate/web/src/components/UI/Modal/TransactionSubmittedModal/TransactionSubmittedModalBody/TransactionSubmittedModalBody.module.scss similarity index 100% rename from src/components/UI/Modal/TransactionSubmittedModal/TransactionSubmittedModalBody/TransactionSubmittedModalBody.module.scss rename to workspace/apps/starkgate/web/src/components/UI/Modal/TransactionSubmittedModal/TransactionSubmittedModalBody/TransactionSubmittedModalBody.module.scss diff --git a/src/components/UI/Modal/TransactionSubmittedModal/TransactionSubmittedModalButton.js b/workspace/apps/starkgate/web/src/components/UI/Modal/TransactionSubmittedModal/TransactionSubmittedModalButton.jsx similarity index 60% rename from src/components/UI/Modal/TransactionSubmittedModal/TransactionSubmittedModalButton.js rename to workspace/apps/starkgate/web/src/components/UI/Modal/TransactionSubmittedModal/TransactionSubmittedModalButton.jsx index 429254ed..71e2e11c 100644 --- a/src/components/UI/Modal/TransactionSubmittedModal/TransactionSubmittedModalButton.js +++ b/workspace/apps/starkgate/web/src/components/UI/Modal/TransactionSubmittedModal/TransactionSubmittedModalButton.jsx @@ -1,55 +1,50 @@ -import {openInNewTab, evaluate} from '@starkware-industries/commons-js-utils'; import PropTypes from 'prop-types'; import React from 'react'; -import {ReactComponent as EtherscanLogo} from '../../../../assets/svg/etherscan.svg'; -import {ReactComponent as StarkScanLogo} from '../../../../assets/svg/starkscan.svg'; -import {ReactComponent as VoyagerLogo} from '../../../../assets/svg/voyager.svg'; -import {ActionType} from '../../../../enums'; -import { - useColors, - useConstants, - useEnvs, - useTransactionSubmittedModalTranslation -} from '../../../../hooks'; -import {Button} from '../../Button/Button'; -import {Circle} from '../../Circle/Circle'; +import {ReactComponent as EtherscanLogo} from '@assets/svg/etherscan.svg'; +import {ReactComponent as StarkScanLogo} from '@assets/svg/starkscan.svg'; +import {ReactComponent as VoyagerLogo} from '@assets/svg/voyager.svg'; +import {useColors, useConstants, useEnvs, useTransactionSubmittedModalTranslation} from '@hooks'; +import {isDeposit, isWithdrawal} from '@starkgate/shared'; +import {evaluate} from '@starkware-webapps/utils'; +import {openInNewTab} from '@starkware-webapps/utils-browser'; +import {Button, Circle} from '@ui'; const TransactionSubmittedModalButton = ({transfer, buttonProps}) => { const {ETHERSCAN, VOYAGER, STARKSCAN} = useConstants(); const {ETHERSCAN_TX_URL, VOYAGER_TX_URL, STARKSCAN_TX_URL, STARKSCAN_ETH_TX_URL} = useEnvs(); const {colorIndigo, colorWhite, colorGainsboro} = useColors(); const {btnTxt} = useTransactionSubmittedModalTranslation(); - const {type, l2hash, l1hash} = transfer; - const isTransferCompleted = l1hash && l2hash; + const {type, l2TxHash, l1TxHash} = transfer; + const isTransferCompleted = l1TxHash && l2TxHash; let explorers; - if (type === ActionType.TRANSFER_TO_L2 || isTransferCompleted) { + if (isDeposit(type) || isTransferCompleted) { explorers = [ { name: ETHERSCAN, - url: ETHERSCAN_TX_URL(l1hash), + url: ETHERSCAN_TX_URL(l1TxHash), logo: }, { name: STARKSCAN, - url: STARKSCAN_ETH_TX_URL(l1hash), + url: STARKSCAN_ETH_TX_URL(l1TxHash), logo: } ]; } - if (type === ActionType.TRANSFER_TO_L1 && !isTransferCompleted) { + if (isWithdrawal(type) && !isTransferCompleted) { explorers = [ { name: VOYAGER, - url: VOYAGER_TX_URL(l2hash), + url: VOYAGER_TX_URL(l2TxHash), logo: }, { name: STARKSCAN, - url: STARKSCAN_TX_URL(l2hash), + url: STARKSCAN_TX_URL(l2TxHash), logo: } ]; diff --git a/workspace/apps/starkgate/web/src/components/UI/Modal/TransactionSubmittedModal/TransactionSubmittedModalHeader/TransactionSubmittedModalHeader.jsx b/workspace/apps/starkgate/web/src/components/UI/Modal/TransactionSubmittedModal/TransactionSubmittedModalHeader/TransactionSubmittedModalHeader.jsx new file mode 100644 index 00000000..603ab29e --- /dev/null +++ b/workspace/apps/starkgate/web/src/components/UI/Modal/TransactionSubmittedModal/TransactionSubmittedModalHeader/TransactionSubmittedModalHeader.jsx @@ -0,0 +1,30 @@ +import PropTypes from 'prop-types'; +import React from 'react'; + +import {useTransactionSubmittedModalTranslation} from '@hooks'; +import {isWithdrawal} from '@starkgate/shared'; +import {DynamicIcon, ModalTitle} from '@ui'; + +import styles from './TransactionSubmittedModalHeader.module.scss'; + +const TransactionSubmittedModalHeader = ({transfer}) => { + const {l1TxTitleTxt, l2TxTitleTxt} = useTransactionSubmittedModalTranslation(); + const {type, l1TxHash} = transfer; + const icon = 'icons/rocket'; + + const getTitleTxt = () => { + return isWithdrawal(type) && !l1TxHash ? l2TxTitleTxt : l1TxTitleTxt; + }; + + return ( +
+ {icon && } + {getTitleTxt()} +
+ ); +}; + +TransactionSubmittedModalHeader.propTypes = { + transfer: PropTypes.object +}; +export default TransactionSubmittedModalHeader; diff --git a/workspace/apps/starkgate/web/src/components/UI/Modal/TransactionSubmittedModal/TransactionSubmittedModalHeader/TransactionSubmittedModalHeader.module.scss b/workspace/apps/starkgate/web/src/components/UI/Modal/TransactionSubmittedModal/TransactionSubmittedModalHeader/TransactionSubmittedModalHeader.module.scss new file mode 100644 index 00000000..5268710b --- /dev/null +++ b/workspace/apps/starkgate/web/src/components/UI/Modal/TransactionSubmittedModal/TransactionSubmittedModalHeader/TransactionSubmittedModalHeader.module.scss @@ -0,0 +1,6 @@ +.transactionSubmittedModalHeader { + display: flex; + align-items: center; + text-align: center; + flex-direction: column; +} diff --git a/src/components/UI/Modal/TransactionSubmittedModal/index.js b/workspace/apps/starkgate/web/src/components/UI/Modal/TransactionSubmittedModal/index.jsx similarity index 100% rename from src/components/UI/Modal/TransactionSubmittedModal/index.js rename to workspace/apps/starkgate/web/src/components/UI/Modal/TransactionSubmittedModal/index.jsx diff --git a/src/components/UI/Modal/index.js b/workspace/apps/starkgate/web/src/components/UI/Modal/index.jsx similarity index 100% rename from src/components/UI/Modal/index.js rename to workspace/apps/starkgate/web/src/components/UI/Modal/index.jsx diff --git a/src/components/UI/MultiChoiceItem/MultiChoiceItem.js b/workspace/apps/starkgate/web/src/components/UI/MultiChoiceItem/MultiChoiceItem.jsx similarity index 85% rename from src/components/UI/MultiChoiceItem/MultiChoiceItem.js rename to workspace/apps/starkgate/web/src/components/UI/MultiChoiceItem/MultiChoiceItem.jsx index 59df764f..6669f166 100644 --- a/src/components/UI/MultiChoiceItem/MultiChoiceItem.js +++ b/workspace/apps/starkgate/web/src/components/UI/MultiChoiceItem/MultiChoiceItem.jsx @@ -1,10 +1,11 @@ -import {toClasses} from '@starkware-industries/commons-js-utils'; import PropTypes from 'prop-types'; import React from 'react'; -import {ReactComponent as ForwardIcon} from '../../../assets/svg/icons/forward.svg'; -import {ReactComponent as LinkIcon} from '../../../assets/svg/icons/link.svg'; -import {CircleLogoSize, DynamicIcon, Loading, LoadingType} from '../index'; +import {ReactComponent as ForwardIcon} from '@assets/svg/icons/forward.svg'; +import {ReactComponent as LinkIcon} from '@assets/svg/icons/link.svg'; +import {toClasses} from '@starkware-webapps/utils-browser'; +import {CircleLogoSize, DynamicIcon, Loading, LoadingType} from '@ui'; + import styles from './MultiChoiceItem.module.scss'; export const ChoiceItemType = { diff --git a/src/components/UI/MultiChoiceItem/MultiChoiceItem.module.scss b/workspace/apps/starkgate/web/src/components/UI/MultiChoiceItem/MultiChoiceItem.module.scss similarity index 100% rename from src/components/UI/MultiChoiceItem/MultiChoiceItem.module.scss rename to workspace/apps/starkgate/web/src/components/UI/MultiChoiceItem/MultiChoiceItem.module.scss diff --git a/src/components/UI/MultiChoiceList/MultiChoiceList.js b/workspace/apps/starkgate/web/src/components/UI/MultiChoiceList/MultiChoiceList.jsx similarity index 79% rename from src/components/UI/MultiChoiceList/MultiChoiceList.js rename to workspace/apps/starkgate/web/src/components/UI/MultiChoiceList/MultiChoiceList.jsx index 92f73925..2a3afea5 100644 --- a/src/components/UI/MultiChoiceList/MultiChoiceList.js +++ b/workspace/apps/starkgate/web/src/components/UI/MultiChoiceList/MultiChoiceList.jsx @@ -1,8 +1,7 @@ import PropTypes from 'prop-types'; import React from 'react'; -import {Menu} from '../Menu/Menu'; -import {MultiChoiceItem} from '../MultiChoiceItem/MultiChoiceItem'; +import {Menu, MultiChoiceItem} from '@ui'; export const MultiChoiceList = ({choices}) => { const renderChoiceItems = () => { diff --git a/src/components/UI/MultiChoiceMenu/MultiChoiceMenu.js b/workspace/apps/starkgate/web/src/components/UI/MultiChoiceMenu/MultiChoiceMenu.jsx similarity index 94% rename from src/components/UI/MultiChoiceMenu/MultiChoiceMenu.js rename to workspace/apps/starkgate/web/src/components/UI/MultiChoiceMenu/MultiChoiceMenu.jsx index 5e11e560..9097d107 100644 --- a/src/components/UI/MultiChoiceMenu/MultiChoiceMenu.js +++ b/workspace/apps/starkgate/web/src/components/UI/MultiChoiceMenu/MultiChoiceMenu.jsx @@ -1,7 +1,8 @@ -import {toClasses} from '@starkware-industries/commons-js-utils'; import PropTypes from 'prop-types'; import React from 'react'; +import {toClasses} from '@starkware-webapps/utils-browser'; + import {Alert, AlertType} from '../Alert/Alert'; import {Menu} from '../Menu/Menu'; import {MultiChoiceList} from '../MultiChoiceList/MultiChoiceList'; diff --git a/src/components/UI/MultiChoiceMenu/MultiChoiceMenu.module.scss b/workspace/apps/starkgate/web/src/components/UI/MultiChoiceMenu/MultiChoiceMenu.module.scss similarity index 100% rename from src/components/UI/MultiChoiceMenu/MultiChoiceMenu.module.scss rename to workspace/apps/starkgate/web/src/components/UI/MultiChoiceMenu/MultiChoiceMenu.module.scss diff --git a/src/components/UI/NetworkMenu/NetworkMenu.js b/workspace/apps/starkgate/web/src/components/UI/NetworkMenu/NetworkMenu.jsx similarity index 71% rename from src/components/UI/NetworkMenu/NetworkMenu.js rename to workspace/apps/starkgate/web/src/components/UI/NetworkMenu/NetworkMenu.jsx index 8c865972..fb6d240a 100644 --- a/src/components/UI/NetworkMenu/NetworkMenu.js +++ b/workspace/apps/starkgate/web/src/components/UI/NetworkMenu/NetworkMenu.jsx @@ -1,13 +1,10 @@ import PropTypes from 'prop-types'; import React from 'react'; -import {useSourceTranslation} from '../../../hooks'; -import {useLogin} from '../../../providers/AppProvider'; -import {useIsL1, useIsL2} from '../../../providers/TransferProvider'; -import {NetworkTitle} from '../NetworkTitle/NetworkTitle'; -import {SourceSelect} from '../SourceSelect/SourceSelect'; -import {TokenBalance} from '../TokenBalance/TokenBalance'; -import {Badge} from '../index'; +import {useSourceTranslation} from '@hooks'; +import {useIsL1, useIsL2, useLogin} from '@providers'; +import {Badge, NetworkTitle, SourceSelect, TokenBalance} from '@ui'; + import styles from './NetworkMenu.module.scss'; export const NetworkMenu = ({networkName, tokenData, isTarget, onRefreshClick, children}) => { diff --git a/src/components/UI/NetworkMenu/NetworkMenu.module.scss b/workspace/apps/starkgate/web/src/components/UI/NetworkMenu/NetworkMenu.module.scss similarity index 100% rename from src/components/UI/NetworkMenu/NetworkMenu.module.scss rename to workspace/apps/starkgate/web/src/components/UI/NetworkMenu/NetworkMenu.module.scss diff --git a/src/components/UI/NetworkSwap/NetworkSwap.js b/workspace/apps/starkgate/web/src/components/UI/NetworkSwap/NetworkSwap.jsx similarity index 73% rename from src/components/UI/NetworkSwap/NetworkSwap.js rename to workspace/apps/starkgate/web/src/components/UI/NetworkSwap/NetworkSwap.jsx index 305998eb..edce4e6c 100644 --- a/src/components/UI/NetworkSwap/NetworkSwap.js +++ b/workspace/apps/starkgate/web/src/components/UI/NetworkSwap/NetworkSwap.jsx @@ -1,10 +1,11 @@ -import {toClasses} from '@starkware-industries/commons-js-utils'; import PropTypes from 'prop-types'; import React from 'react'; -import {ReactComponent as SwapIcon} from '../../../assets/svg/icons/swap.svg'; -import {useColors} from '../../../hooks'; -import {Circle, CircleLogoSize} from '../index'; +import {ReactComponent as SwapIcon} from '@assets/svg/icons/swap.svg'; +import {useColors} from '@hooks'; +import {toClasses} from '@starkware-webapps/utils-browser'; +import {Circle, CircleLogoSize} from '@ui'; + import styles from './NetworkSwap.module.scss'; export const NetworkSwap = ({isFlipped, onClick}) => { diff --git a/src/components/UI/NetworkSwap/NetworkSwap.module.scss b/workspace/apps/starkgate/web/src/components/UI/NetworkSwap/NetworkSwap.module.scss similarity index 100% rename from src/components/UI/NetworkSwap/NetworkSwap.module.scss rename to workspace/apps/starkgate/web/src/components/UI/NetworkSwap/NetworkSwap.module.scss diff --git a/src/components/UI/NetworkTitle/NetworkTitle.js b/workspace/apps/starkgate/web/src/components/UI/NetworkTitle/NetworkTitle.jsx similarity index 80% rename from src/components/UI/NetworkTitle/NetworkTitle.js rename to workspace/apps/starkgate/web/src/components/UI/NetworkTitle/NetworkTitle.jsx index d53ead3c..dd7fe504 100644 --- a/src/components/UI/NetworkTitle/NetworkTitle.js +++ b/workspace/apps/starkgate/web/src/components/UI/NetworkTitle/NetworkTitle.jsx @@ -1,8 +1,8 @@ import PropTypes from 'prop-types'; import React from 'react'; -import {CircleLogoSize} from '../CircleLogo/CircleLogo'; -import {CircleLogo} from '../index'; +import {CircleLogo, CircleLogoSize} from '@ui'; + import styles from './NetworkTitle.module.scss'; export const NetworkTitle = ({networkName}) => ( diff --git a/src/components/UI/NetworkTitle/NetworkTitle.module.scss b/workspace/apps/starkgate/web/src/components/UI/NetworkTitle/NetworkTitle.module.scss similarity index 100% rename from src/components/UI/NetworkTitle/NetworkTitle.module.scss rename to workspace/apps/starkgate/web/src/components/UI/NetworkTitle/NetworkTitle.module.scss diff --git a/src/components/UI/NetworkWalletButton/NetworkWalletButton.js b/workspace/apps/starkgate/web/src/components/UI/NetworkWalletButton/NetworkWalletButton.jsx similarity index 71% rename from src/components/UI/NetworkWalletButton/NetworkWalletButton.js rename to workspace/apps/starkgate/web/src/components/UI/NetworkWalletButton/NetworkWalletButton.jsx index 0f198c43..d426ca44 100644 --- a/src/components/UI/NetworkWalletButton/NetworkWalletButton.js +++ b/workspace/apps/starkgate/web/src/components/UI/NetworkWalletButton/NetworkWalletButton.jsx @@ -1,18 +1,16 @@ -import {NetworkType, WalletStatus} from '@starkware-industries/commons-js-enums'; import PropTypes from 'prop-types'; import {useEffect} from 'react'; -import {useConnectWalletTracking} from '../../../hooks'; -import {useApp} from '../../../providers/AppProvider'; -import {useMenu} from '../../../providers/MenuProvider'; -import {useLoginModal} from '../../../providers/ModalProvider'; -import {WalletButton} from '../index'; +import {useConnectWalletTracking} from '@hooks'; +import {useApp, useLoginModal, useMenu} from '@providers'; +import {WalletStatus, isL1Network} from '@starkware-webapps/enums'; +import {WalletButton} from '@ui'; export const NetworkWalletButton = ({account, chain, logoPath, network, status, error, swapFn}) => { const {navigateToRoute} = useApp(); const {showAccountMenu} = useMenu(); const showLoginModal = useLoginModal(); - const [, trackConnectEthereumWalletClick, trackConnectStaknetWalletClick] = + const [, trackConnectEthereumWalletClick, trackConnectStarknetWalletClick] = useConnectWalletTracking(); useEffect(() => { @@ -39,9 +37,7 @@ export const NetworkWalletButton = ({account, chain, logoPath, network, status, }; const handleConnectWallet = () => { - network === NetworkType.L1 - ? trackConnectEthereumWalletClick() - : trackConnectStaknetWalletClick(); + isL1Network(network) ? trackConnectEthereumWalletClick() : trackConnectStarknetWalletClick(); showLoginModal(network); }; diff --git a/src/components/UI/RefreshIcon/RefreshIcon.js b/workspace/apps/starkgate/web/src/components/UI/RefreshIcon/RefreshIcon.jsx similarity index 84% rename from src/components/UI/RefreshIcon/RefreshIcon.js rename to workspace/apps/starkgate/web/src/components/UI/RefreshIcon/RefreshIcon.jsx index fc9e628a..fb9050f8 100644 --- a/src/components/UI/RefreshIcon/RefreshIcon.js +++ b/workspace/apps/starkgate/web/src/components/UI/RefreshIcon/RefreshIcon.jsx @@ -1,8 +1,9 @@ -import {toClasses} from '@starkware-industries/commons-js-utils'; import PropTypes from 'prop-types'; import React, {useEffect, useState} from 'react'; -import {ReactComponent as RefreshSvg} from '../../../assets/svg/icons/refresh.svg'; +import {ReactComponent as RefreshSvg} from '@assets/svg/icons/refresh.svg'; +import {toClasses} from '@starkware-webapps/utils-browser'; + import styles from './RefreshIcon.module.scss'; export const RefreshIconSize = { diff --git a/src/components/UI/RefreshIcon/RefreshIcon.module.scss b/workspace/apps/starkgate/web/src/components/UI/RefreshIcon/RefreshIcon.module.scss similarity index 100% rename from src/components/UI/RefreshIcon/RefreshIcon.module.scss rename to workspace/apps/starkgate/web/src/components/UI/RefreshIcon/RefreshIcon.module.scss diff --git a/src/components/UI/SearchToken/SearchToken.js b/workspace/apps/starkgate/web/src/components/UI/SearchToken/SearchToken.jsx similarity index 84% rename from src/components/UI/SearchToken/SearchToken.js rename to workspace/apps/starkgate/web/src/components/UI/SearchToken/SearchToken.jsx index eeef98d0..40783dcb 100644 --- a/src/components/UI/SearchToken/SearchToken.js +++ b/workspace/apps/starkgate/web/src/components/UI/SearchToken/SearchToken.jsx @@ -1,9 +1,10 @@ import PropTypes from 'prop-types'; import React, {useEffect, useState} from 'react'; -import {ReactComponent as SearchIcon} from '../../../assets/svg/icons/search.svg'; -import {useColors, useSelectTokenTranslation} from '../../../hooks'; -import {Input} from '../index'; +import {ReactComponent as SearchIcon} from '@assets/svg/icons/search.svg'; +import {useColors, useSelectTokenTranslation} from '@hooks'; +import {Input} from '@ui'; + import styles from './SearchToken.module.scss'; export const SearchToken = ({tokens, onSearchResults}) => { diff --git a/src/components/UI/SearchToken/SearchToken.module.scss b/workspace/apps/starkgate/web/src/components/UI/SearchToken/SearchToken.module.scss similarity index 100% rename from src/components/UI/SearchToken/SearchToken.module.scss rename to workspace/apps/starkgate/web/src/components/UI/SearchToken/SearchToken.module.scss diff --git a/src/components/UI/SelectTokenList/SelectTokenList.js b/workspace/apps/starkgate/web/src/components/UI/SelectTokenList/SelectTokenList.jsx similarity index 87% rename from src/components/UI/SelectTokenList/SelectTokenList.js rename to workspace/apps/starkgate/web/src/components/UI/SelectTokenList/SelectTokenList.jsx index 6629217d..e47f8497 100644 --- a/src/components/UI/SelectTokenList/SelectTokenList.js +++ b/workspace/apps/starkgate/web/src/components/UI/SelectTokenList/SelectTokenList.jsx @@ -1,7 +1,8 @@ import PropTypes from 'prop-types'; import React from 'react'; -import {SelectTokenRow} from '../SelectTokenRow/SelectTokenRow'; +import {SelectTokenRow} from '@ui'; + import styles from './SelectTokenList.module.scss'; export const SelectTokenList = ({tokens, onClick}) => ( diff --git a/src/components/UI/SelectTokenList/SelectTokenList.module.scss b/workspace/apps/starkgate/web/src/components/UI/SelectTokenList/SelectTokenList.module.scss similarity index 100% rename from src/components/UI/SelectTokenList/SelectTokenList.module.scss rename to workspace/apps/starkgate/web/src/components/UI/SelectTokenList/SelectTokenList.module.scss diff --git a/src/components/UI/SelectTokenRow/SelectTokenRow.js b/workspace/apps/starkgate/web/src/components/UI/SelectTokenRow/SelectTokenRow.jsx similarity index 87% rename from src/components/UI/SelectTokenRow/SelectTokenRow.js rename to workspace/apps/starkgate/web/src/components/UI/SelectTokenRow/SelectTokenRow.jsx index a17ca9df..0f626864 100644 --- a/src/components/UI/SelectTokenRow/SelectTokenRow.js +++ b/workspace/apps/starkgate/web/src/components/UI/SelectTokenRow/SelectTokenRow.jsx @@ -1,9 +1,10 @@ -import {formatBalance, toClasses} from '@starkware-industries/commons-js-utils'; import PropTypes from 'prop-types'; import React from 'react'; -import {CircleLogoSize} from '../CircleLogo/CircleLogo'; -import {CircleLogo, Loading, LoadingSize} from '../index'; +import {formatBalance} from '@starkware-webapps/utils'; +import {toClasses} from '@starkware-webapps/utils-browser'; +import {CircleLogo, CircleLogoSize, Loading, LoadingSize} from '@ui'; + import styles from './SelectTokenRow.module.scss'; export const SelectTokenRow = ({tokenData, onClick}) => { diff --git a/src/components/UI/SelectTokenRow/SelectTokenRow.module.scss b/workspace/apps/starkgate/web/src/components/UI/SelectTokenRow/SelectTokenRow.module.scss similarity index 94% rename from src/components/UI/SelectTokenRow/SelectTokenRow.module.scss rename to workspace/apps/starkgate/web/src/components/UI/SelectTokenRow/SelectTokenRow.module.scss index aed33c04..311b818e 100644 --- a/src/components/UI/SelectTokenRow/SelectTokenRow.module.scss +++ b/workspace/apps/starkgate/web/src/components/UI/SelectTokenRow/SelectTokenRow.module.scss @@ -36,7 +36,6 @@ font-weight: 500; font-size: 14px; line-height: 20px; - text-transform: uppercase; transition: 0.4s ease-in-out; } @@ -57,7 +56,6 @@ font-size: 12px; line-height: 16px; color: $--color-ceil; - text-transform: uppercase; transition: 0.4s ease-in-out; } } diff --git a/src/components/UI/SideButton/SideButton.js b/workspace/apps/starkgate/web/src/components/UI/SideButton/SideButton.jsx similarity index 84% rename from src/components/UI/SideButton/SideButton.js rename to workspace/apps/starkgate/web/src/components/UI/SideButton/SideButton.jsx index 8909f777..f0fe8369 100644 --- a/src/components/UI/SideButton/SideButton.js +++ b/workspace/apps/starkgate/web/src/components/UI/SideButton/SideButton.jsx @@ -1,8 +1,9 @@ import PropTypes from 'prop-types'; import React from 'react'; -import {useVars} from '../../../hooks'; -import {useApp} from '../../../providers/AppProvider'; +import {useVars} from '@hooks'; +import {useApp} from '@providers'; + import styles from './SideButton.module.scss'; export const SideButton = ({icon, onClick}) => { diff --git a/src/components/UI/SideButton/SideButton.module.scss b/workspace/apps/starkgate/web/src/components/UI/SideButton/SideButton.module.scss similarity index 100% rename from src/components/UI/SideButton/SideButton.module.scss rename to workspace/apps/starkgate/web/src/components/UI/SideButton/SideButton.module.scss diff --git a/src/components/UI/SourceMenuTab/SourceMenuTab.js b/workspace/apps/starkgate/web/src/components/UI/SourceMenuTab/SourceMenuTab.jsx similarity index 86% rename from src/components/UI/SourceMenuTab/SourceMenuTab.js rename to workspace/apps/starkgate/web/src/components/UI/SourceMenuTab/SourceMenuTab.jsx index 11373d03..fe68c059 100644 --- a/src/components/UI/SourceMenuTab/SourceMenuTab.js +++ b/workspace/apps/starkgate/web/src/components/UI/SourceMenuTab/SourceMenuTab.jsx @@ -1,7 +1,8 @@ -import {toClasses} from '@starkware-industries/commons-js-utils'; import PropTypes from 'prop-types'; import React from 'react'; +import {toClasses} from '@starkware-webapps/utils-browser'; + import styles from './SourceMenuTab.module.scss'; export const SourceMenuTab = ({text, isActive, onClick}) => ( diff --git a/src/components/UI/SourceMenuTab/SourceMenuTab.module.scss b/workspace/apps/starkgate/web/src/components/UI/SourceMenuTab/SourceMenuTab.module.scss similarity index 100% rename from src/components/UI/SourceMenuTab/SourceMenuTab.module.scss rename to workspace/apps/starkgate/web/src/components/UI/SourceMenuTab/SourceMenuTab.module.scss diff --git a/src/components/UI/SourceSelect/SourceSelect.js b/workspace/apps/starkgate/web/src/components/UI/SourceSelect/SourceSelect.jsx similarity index 77% rename from src/components/UI/SourceSelect/SourceSelect.js rename to workspace/apps/starkgate/web/src/components/UI/SourceSelect/SourceSelect.jsx index 6a3176ba..c1448f84 100644 --- a/src/components/UI/SourceSelect/SourceSelect.js +++ b/workspace/apps/starkgate/web/src/components/UI/SourceSelect/SourceSelect.jsx @@ -1,10 +1,10 @@ -import {Select, MenuItem, ListSubheader} from '@mui/material'; import React from 'react'; -import {categories, sources, depositConfig, withdrawConfig} from '../../../config/sources'; -import {useSource} from '../../../providers/SourceProvider'; -import {useIsL1} from '../../../providers/TransferProvider'; -import {CircleLogo, CircleLogoSize} from '../CircleLogo/CircleLogo'; +import {categories, depositConfig, sources, withdrawConfig} from '@config/sources'; +import {ListSubheader, MenuItem, Select} from '@mui/material'; +import {useIsL1, useSource} from '@providers'; +import {CircleLogo, CircleLogoSize} from '@ui'; + import {SourceSelectTheme} from './SourceSelect.theme'; export const SourceSelect = () => { diff --git a/src/components/UI/SourceSelect/SourceSelect.theme.js b/workspace/apps/starkgate/web/src/components/UI/SourceSelect/SourceSelect.theme.jsx similarity index 92% rename from src/components/UI/SourceSelect/SourceSelect.theme.js rename to workspace/apps/starkgate/web/src/components/UI/SourceSelect/SourceSelect.theme.jsx index 8f0cd11e..e9b85cfc 100644 --- a/src/components/UI/SourceSelect/SourceSelect.theme.js +++ b/workspace/apps/starkgate/web/src/components/UI/SourceSelect/SourceSelect.theme.jsx @@ -1,10 +1,10 @@ -import {createTheme, ThemeProvider} from '@mui/material'; import PropTypes from 'prop-types'; import React from 'react'; -import CollapseIcon from '../../../assets/svg/icons/collapse.svg'; -import SelectedIcon from '../../../assets/svg/icons/selected.svg'; -import {useColors, useFonts} from '../../../hooks'; +import CollapseIcon from '@assets/svg/icons/collapse.svg'; +import SelectedIcon from '@assets/svg/icons/selected.svg'; +import {useColors, useFonts} from '@hooks'; +import {ThemeProvider, createTheme} from '@mui/material'; export const SourceSelectTheme = ({children}) => { const { diff --git a/src/components/UI/StarknetWalletButton/StarknetWalletButton.js b/workspace/apps/starkgate/web/src/components/UI/StarknetWalletButton/StarknetWalletButton.jsx similarity index 65% rename from src/components/UI/StarknetWalletButton/StarknetWalletButton.js rename to workspace/apps/starkgate/web/src/components/UI/StarknetWalletButton/StarknetWalletButton.jsx index d867a316..e614c7d0 100644 --- a/src/components/UI/StarknetWalletButton/StarknetWalletButton.js +++ b/workspace/apps/starkgate/web/src/components/UI/StarknetWalletButton/StarknetWalletButton.jsx @@ -1,11 +1,10 @@ -import {ChainInfo, NetworkType} from '@starkware-industries/commons-js-enums'; import React from 'react'; import {addAddressPadding} from 'starknet'; -import {useEnvs} from '../../../hooks'; -import {useIsL2} from '../../../providers/TransferProvider'; -import {useL2Wallet} from '../../../providers/WalletsProvider'; -import {NetworkWalletButton} from '../index'; +import {useEnvs} from '@hooks'; +import {useIsL2, useL2Wallet} from '@providers'; +import {ChainInfo, NetworkType} from '@starkware-webapps/enums'; +import {NetworkWalletButton} from '@ui'; export const StarknetWalletButton = () => { const {account, config, error, status} = useL2Wallet(); diff --git a/src/components/UI/Stepper/Stepper.js b/workspace/apps/starkgate/web/src/components/UI/Stepper/Stepper.jsx similarity index 91% rename from src/components/UI/Stepper/Stepper.js rename to workspace/apps/starkgate/web/src/components/UI/Stepper/Stepper.jsx index 003f55c7..58673793 100644 --- a/src/components/UI/Stepper/Stepper.js +++ b/workspace/apps/starkgate/web/src/components/UI/Stepper/Stepper.jsx @@ -1,7 +1,8 @@ -import {Step, StepLabel, Stepper as MuiStepper} from '@mui/material'; import PropTypes from 'prop-types'; import React from 'react'; +import {Stepper as MuiStepper, Step, StepLabel} from '@mui/material'; + import styles from './Stepper.module.scss'; import {StepperTheme} from './Stepper.theme'; diff --git a/src/components/UI/Stepper/Stepper.module.scss b/workspace/apps/starkgate/web/src/components/UI/Stepper/Stepper.module.scss similarity index 100% rename from src/components/UI/Stepper/Stepper.module.scss rename to workspace/apps/starkgate/web/src/components/UI/Stepper/Stepper.module.scss diff --git a/src/components/UI/Stepper/Stepper.theme.js b/workspace/apps/starkgate/web/src/components/UI/Stepper/Stepper.theme.jsx similarity index 92% rename from src/components/UI/Stepper/Stepper.theme.js rename to workspace/apps/starkgate/web/src/components/UI/Stepper/Stepper.theme.jsx index 6aeb7ce9..fe75f44c 100644 --- a/src/components/UI/Stepper/Stepper.theme.js +++ b/workspace/apps/starkgate/web/src/components/UI/Stepper/Stepper.theme.jsx @@ -1,8 +1,8 @@ -import {createTheme, ThemeProvider} from '@mui/material'; import PropTypes from 'prop-types'; import React from 'react'; -import {useColors} from '../../../hooks'; +import {useColors} from '@hooks'; +import {ThemeProvider, createTheme} from '@mui/material'; export const StepperTheme = ({children}) => { const {colorGainsboro1, colorSpaceCadet, colorLightSteelBlue} = useColors(); diff --git a/src/components/UI/StyledBackground/StyledBackground.js b/workspace/apps/starkgate/web/src/components/UI/StyledBackground/StyledBackground.jsx similarity index 85% rename from src/components/UI/StyledBackground/StyledBackground.js rename to workspace/apps/starkgate/web/src/components/UI/StyledBackground/StyledBackground.jsx index c5d5690a..ea997e69 100644 --- a/src/components/UI/StyledBackground/StyledBackground.js +++ b/workspace/apps/starkgate/web/src/components/UI/StyledBackground/StyledBackground.jsx @@ -1,8 +1,9 @@ import PropTypes from 'prop-types'; import React from 'react'; -import lightAccentBackgroundPath from '../../../assets/img/light-accent.png'; -import starsBackgroundPath from '../../../assets/img/stars.png'; +import lightAccentBackgroundPath from '@assets/img/light-accent.png'; +import starsBackgroundPath from '@assets/img/stars.png'; + import styles from './StyledBackground.module.scss'; export const StyledBackground = ({withStars = true, withLightAccent = true, children}) => { diff --git a/src/components/UI/StyledBackground/StyledBackground.module.scss b/workspace/apps/starkgate/web/src/components/UI/StyledBackground/StyledBackground.module.scss similarity index 100% rename from src/components/UI/StyledBackground/StyledBackground.module.scss rename to workspace/apps/starkgate/web/src/components/UI/StyledBackground/StyledBackground.module.scss diff --git a/src/components/UI/Tab/Tab.js b/workspace/apps/starkgate/web/src/components/UI/Tab/Tab.jsx similarity index 86% rename from src/components/UI/Tab/Tab.js rename to workspace/apps/starkgate/web/src/components/UI/Tab/Tab.jsx index 67c8d30c..a45cbf24 100644 --- a/src/components/UI/Tab/Tab.js +++ b/workspace/apps/starkgate/web/src/components/UI/Tab/Tab.jsx @@ -1,7 +1,8 @@ -import {toClasses} from '@starkware-industries/commons-js-utils'; import PropTypes from 'prop-types'; import React from 'react'; +import {toClasses} from '@starkware-webapps/utils-browser'; + import styles from './Tab.module.scss'; export const Tab = ({text, isActive, icon, onClick}) => { diff --git a/src/components/UI/Tab/Tab.module.scss b/workspace/apps/starkgate/web/src/components/UI/Tab/Tab.module.scss similarity index 100% rename from src/components/UI/Tab/Tab.module.scss rename to workspace/apps/starkgate/web/src/components/UI/Tab/Tab.module.scss diff --git a/src/components/UI/Tabs/Tabs.js b/workspace/apps/starkgate/web/src/components/UI/Tabs/Tabs.jsx similarity index 82% rename from src/components/UI/Tabs/Tabs.js rename to workspace/apps/starkgate/web/src/components/UI/Tabs/Tabs.jsx index 722a430e..8ce522be 100644 --- a/src/components/UI/Tabs/Tabs.js +++ b/workspace/apps/starkgate/web/src/components/UI/Tabs/Tabs.jsx @@ -1,8 +1,7 @@ import PropTypes from 'prop-types'; import React, {Fragment} from 'react'; -import {Divider} from '../Divider/Divider'; -import {Tab} from '../Tab/Tab'; +import {Divider, Tab} from '@ui'; export const Tabs = ({tabs}) => { return tabs.map((tab, index) => { diff --git a/src/components/UI/Toast/AlphaDisclaimerToast/AlphaDisclaimerToast.js b/workspace/apps/starkgate/web/src/components/UI/Toast/AlphaDisclaimerToast/AlphaDisclaimerToast.jsx similarity index 72% rename from src/components/UI/Toast/AlphaDisclaimerToast/AlphaDisclaimerToast.js rename to workspace/apps/starkgate/web/src/components/UI/Toast/AlphaDisclaimerToast/AlphaDisclaimerToast.jsx index 8af1c504..4fe7db8e 100644 --- a/src/components/UI/Toast/AlphaDisclaimerToast/AlphaDisclaimerToast.js +++ b/workspace/apps/starkgate/web/src/components/UI/Toast/AlphaDisclaimerToast/AlphaDisclaimerToast.jsx @@ -1,9 +1,9 @@ import PropTypes from 'prop-types'; import React from 'react'; -import {ReactComponent as StarknetIcon} from '../../../../assets/svg/chains/starknet.svg'; -import {useColors, useToastsTranslation} from '../../../../hooks'; -import {CallToActionToast} from '../CallToActionToast/CallToActionToast'; +import {ReactComponent as StarknetIcon} from '@assets/svg/chains/starknet.svg'; +import {useColors, useToastsTranslation} from '@hooks'; +import {CallToActionToast} from '@ui'; export const AlphaDisclaimerToast = ({t, onDismiss}) => { const {alphaDisclaimerNotice} = useToastsTranslation(); diff --git a/src/components/UI/Toast/CallToActionToast/CallToActionToast.js b/workspace/apps/starkgate/web/src/components/UI/Toast/CallToActionToast/CallToActionToast.jsx similarity index 86% rename from src/components/UI/Toast/CallToActionToast/CallToActionToast.js rename to workspace/apps/starkgate/web/src/components/UI/Toast/CallToActionToast/CallToActionToast.jsx index 156ad10a..0b3586a4 100644 --- a/src/components/UI/Toast/CallToActionToast/CallToActionToast.js +++ b/workspace/apps/starkgate/web/src/components/UI/Toast/CallToActionToast/CallToActionToast.jsx @@ -1,14 +1,11 @@ -import {Transition} from '@headlessui/react'; -import {hexToRgba} from '@starkware-industries/commons-js-utils'; import PropTypes from 'prop-types'; import React from 'react'; -import {useColors} from '../../../../hooks'; -import {ToastBody} from '../ToastBody/ToastBody'; -import {ToastButton, ToastButtons} from '../ToastButton/ToastButton'; -import {ToastFooter} from '../ToastFooter/ToastFooter'; -import {ToastHeader} from '../ToastHeader/ToastHeader'; -import {ToastSeparator} from '../ToastSeparator/ToastSeparator'; +import {Transition} from '@headlessui/react'; +import {useColors} from '@hooks'; +import {hexToRgba} from '@starkware-webapps/utils-browser'; +import {ToastBody, ToastButton, ToastButtons, ToastFooter, ToastHeader, ToastSeparator} from '@ui'; + import styles from './CallToActionToast.module.scss'; export const CallToActionToast = ({ diff --git a/src/components/UI/Toast/CallToActionToast/CallToActionToast.module.scss b/workspace/apps/starkgate/web/src/components/UI/Toast/CallToActionToast/CallToActionToast.module.scss similarity index 100% rename from src/components/UI/Toast/CallToActionToast/CallToActionToast.module.scss rename to workspace/apps/starkgate/web/src/components/UI/Toast/CallToActionToast/CallToActionToast.module.scss diff --git a/src/components/UI/Toast/CompleteTransferToL1Toast/CompleteTransferToL1Toast.js b/workspace/apps/starkgate/web/src/components/UI/Toast/CompleteTransferToL1Toast/CompleteTransferToL1Toast.jsx similarity index 72% rename from src/components/UI/Toast/CompleteTransferToL1Toast/CompleteTransferToL1Toast.js rename to workspace/apps/starkgate/web/src/components/UI/Toast/CompleteTransferToL1Toast/CompleteTransferToL1Toast.jsx index 351e25df..6a610bed 100644 --- a/src/components/UI/Toast/CompleteTransferToL1Toast/CompleteTransferToL1Toast.js +++ b/workspace/apps/starkgate/web/src/components/UI/Toast/CompleteTransferToL1Toast/CompleteTransferToL1Toast.jsx @@ -1,12 +1,11 @@ import PropTypes from 'prop-types'; import React from 'react'; -import {ReactComponent as EthereumIcon} from '../../../../assets/svg/chains/ethereum.svg'; -import {ReactComponent as ArrowRight} from '../../../../assets/svg/icons/arrow-right.svg'; -import {useColors, useCompleteTransferToastTranslation} from '../../../../hooks'; -import {TransferData} from '../../../Features'; -import {CallToActionToast} from '../CallToActionToast/CallToActionToast'; -import {TransferLogLink} from '../ToastFooter/ToastFooter'; +import {ReactComponent as EthereumIcon} from '@assets/svg/chains/ethereum.svg'; +import {ReactComponent as ArrowRight} from '@assets/svg/icons/arrow-right.svg'; +import {TransferData} from '@features'; +import {useColors, useCompleteTransferToastTranslation} from '@hooks'; +import {CallToActionToast, TransferLogLink} from '@ui'; export const CompleteTransferToL1Toast = ({ t, diff --git a/src/components/UI/Toast/ErrorToast/ErrorToast.js b/workspace/apps/starkgate/web/src/components/UI/Toast/ErrorToast/ErrorToast.jsx similarity index 81% rename from src/components/UI/Toast/ErrorToast/ErrorToast.js rename to workspace/apps/starkgate/web/src/components/UI/Toast/ErrorToast/ErrorToast.jsx index f9f56097..6ff9af88 100644 --- a/src/components/UI/Toast/ErrorToast/ErrorToast.js +++ b/workspace/apps/starkgate/web/src/components/UI/Toast/ErrorToast/ErrorToast.jsx @@ -1,9 +1,10 @@ -import {toClasses} from '@starkware-industries/commons-js-utils'; import PropTypes from 'prop-types'; import React, {useState} from 'react'; -import {ReactComponent as WarningIcon} from '../../../../assets/svg/icons/warning.svg'; -import {CollapseExpand} from '../../CollapseExpand/CollapseExpand'; +import {ReactComponent as WarningIcon} from '@assets/svg/icons/warning.svg'; +import {toClasses} from '@starkware-webapps/utils-browser'; +import {CollapseExpand} from '@ui'; + import styles from './ErrorToast.module.scss'; export const ErrorToast = ({title, msg, isCollapsable}) => { diff --git a/src/components/UI/Toast/ErrorToast/ErrorToast.module.scss b/workspace/apps/starkgate/web/src/components/UI/Toast/ErrorToast/ErrorToast.module.scss similarity index 100% rename from src/components/UI/Toast/ErrorToast/ErrorToast.module.scss rename to workspace/apps/starkgate/web/src/components/UI/Toast/ErrorToast/ErrorToast.module.scss diff --git a/src/components/UI/Toast/ToastBody/ToastBody.js b/workspace/apps/starkgate/web/src/components/UI/Toast/ToastBody/ToastBody.jsx similarity index 81% rename from src/components/UI/Toast/ToastBody/ToastBody.js rename to workspace/apps/starkgate/web/src/components/UI/Toast/ToastBody/ToastBody.jsx index e59a18db..41b66614 100644 --- a/src/components/UI/Toast/ToastBody/ToastBody.js +++ b/workspace/apps/starkgate/web/src/components/UI/Toast/ToastBody/ToastBody.jsx @@ -12,6 +12,6 @@ export const ToastBody = ({body, style}) => { }; ToastBody.propTypes = { - body: PropTypes.string, + body: PropTypes.oneOfType([PropTypes.element, PropTypes.string]), style: PropTypes.object }; diff --git a/src/components/UI/Toast/ToastBody/ToastBody.module.scss b/workspace/apps/starkgate/web/src/components/UI/Toast/ToastBody/ToastBody.module.scss similarity index 100% rename from src/components/UI/Toast/ToastBody/ToastBody.module.scss rename to workspace/apps/starkgate/web/src/components/UI/Toast/ToastBody/ToastBody.module.scss diff --git a/src/components/UI/Toast/ToastButton/ToastButton.js b/workspace/apps/starkgate/web/src/components/UI/Toast/ToastButton/ToastButton.jsx similarity index 100% rename from src/components/UI/Toast/ToastButton/ToastButton.js rename to workspace/apps/starkgate/web/src/components/UI/Toast/ToastButton/ToastButton.jsx diff --git a/src/components/UI/Toast/ToastButton/ToastButton.module.scss b/workspace/apps/starkgate/web/src/components/UI/Toast/ToastButton/ToastButton.module.scss similarity index 100% rename from src/components/UI/Toast/ToastButton/ToastButton.module.scss rename to workspace/apps/starkgate/web/src/components/UI/Toast/ToastButton/ToastButton.module.scss diff --git a/src/components/UI/Toast/ToastFooter/ToastFooter.js b/workspace/apps/starkgate/web/src/components/UI/Toast/ToastFooter/ToastFooter.jsx similarity index 91% rename from src/components/UI/Toast/ToastFooter/ToastFooter.js rename to workspace/apps/starkgate/web/src/components/UI/Toast/ToastFooter/ToastFooter.jsx index eb97863f..de8a1efe 100644 --- a/src/components/UI/Toast/ToastFooter/ToastFooter.js +++ b/workspace/apps/starkgate/web/src/components/UI/Toast/ToastFooter/ToastFooter.jsx @@ -1,7 +1,8 @@ import PropTypes from 'prop-types'; import React from 'react'; -import {useToastsTranslation} from '../../../../hooks'; +import {useToastsTranslation} from '@hooks'; + import styles from './ToastFooter.module.scss'; export const ToastFooter = ({children}) => { diff --git a/src/components/UI/Toast/ToastFooter/ToastFooter.module.scss b/workspace/apps/starkgate/web/src/components/UI/Toast/ToastFooter/ToastFooter.module.scss similarity index 100% rename from src/components/UI/Toast/ToastFooter/ToastFooter.module.scss rename to workspace/apps/starkgate/web/src/components/UI/Toast/ToastFooter/ToastFooter.module.scss diff --git a/src/components/UI/Toast/ToastHeader/ToastHeader.js b/workspace/apps/starkgate/web/src/components/UI/Toast/ToastHeader/ToastHeader.jsx similarity index 86% rename from src/components/UI/Toast/ToastHeader/ToastHeader.js rename to workspace/apps/starkgate/web/src/components/UI/Toast/ToastHeader/ToastHeader.jsx index 98aad88b..01bf2631 100644 --- a/src/components/UI/Toast/ToastHeader/ToastHeader.js +++ b/workspace/apps/starkgate/web/src/components/UI/Toast/ToastHeader/ToastHeader.jsx @@ -1,7 +1,8 @@ import PropTypes from 'prop-types'; import React from 'react'; -import {ReactComponent as CloseIcon} from '../../../../assets/svg/icons/close.svg'; +import {ReactComponent as CloseIcon} from '@assets/svg/icons/close.svg'; + import styles from './ToastHeader.module.scss'; export const ToastHeader = ({title, onClose, withClose}) => { diff --git a/src/components/UI/Toast/ToastHeader/ToastHeader.module.scss b/workspace/apps/starkgate/web/src/components/UI/Toast/ToastHeader/ToastHeader.module.scss similarity index 100% rename from src/components/UI/Toast/ToastHeader/ToastHeader.module.scss rename to workspace/apps/starkgate/web/src/components/UI/Toast/ToastHeader/ToastHeader.module.scss diff --git a/src/components/UI/Toast/ToastSeparator/ToastSeparator.js b/workspace/apps/starkgate/web/src/components/UI/Toast/ToastSeparator/ToastSeparator.jsx similarity index 100% rename from src/components/UI/Toast/ToastSeparator/ToastSeparator.js rename to workspace/apps/starkgate/web/src/components/UI/Toast/ToastSeparator/ToastSeparator.jsx diff --git a/src/components/UI/Toast/ToastSeparator/ToastSeparator.module.scss b/workspace/apps/starkgate/web/src/components/UI/Toast/ToastSeparator/ToastSeparator.module.scss similarity index 100% rename from src/components/UI/Toast/ToastSeparator/ToastSeparator.module.scss rename to workspace/apps/starkgate/web/src/components/UI/Toast/ToastSeparator/ToastSeparator.module.scss diff --git a/src/components/UI/Toast/TransferToast/TransferToast.js b/workspace/apps/starkgate/web/src/components/UI/Toast/TransferToast/TransferToast.jsx similarity index 61% rename from src/components/UI/Toast/TransferToast/TransferToast.js rename to workspace/apps/starkgate/web/src/components/UI/Toast/TransferToast/TransferToast.jsx index 047dd60b..80134171 100644 --- a/src/components/UI/Toast/TransferToast/TransferToast.js +++ b/workspace/apps/starkgate/web/src/components/UI/Toast/TransferToast/TransferToast.jsx @@ -1,25 +1,23 @@ -import {isConsumed, isPending, isRejected} from '@starkware-industries/commons-js-enums'; import PropTypes from 'prop-types'; import React from 'react'; -import {usePendingTransferToastTranslation} from '../../../../hooks'; -import {TransferData} from '../../../Features'; -import {ToastFooter, TransferLogLink} from '../ToastFooter/ToastFooter'; -import {ToastHeader} from '../ToastHeader/ToastHeader'; -import {ToastSeparator} from '../ToastSeparator/ToastSeparator'; +import {TransferData} from '@features'; +import {usePendingTransferToastTranslation} from '@hooks'; +import {isConsumed, isPending, isRejected} from '@starkware-webapps/enums'; +import {ToastFooter, ToastHeader, ToastSeparator, TransferLogLink} from '@ui'; export const TransferToast = ({transfer, isLoading, onTransferLogLinkClick, onClose}) => { const {pendingTxt, consumedTxt, rejectedTxt} = usePendingTransferToastTranslation(); const getTitle = () => { - const {status} = transfer; - if (isPending(status)) { + const {l2TxStatus} = transfer; + if (isPending(l2TxStatus)) { return pendingTxt; } - if (isConsumed(status)) { + if (isConsumed(l2TxStatus)) { return consumedTxt; } - if (isRejected(status)) { + if (isRejected(l2TxStatus)) { return rejectedTxt; } }; diff --git a/src/components/UI/Toast/index.js b/workspace/apps/starkgate/web/src/components/UI/Toast/index.jsx similarity index 67% rename from src/components/UI/Toast/index.js rename to workspace/apps/starkgate/web/src/components/UI/Toast/index.jsx index 1a8437c0..8896de71 100644 --- a/src/components/UI/Toast/index.js +++ b/workspace/apps/starkgate/web/src/components/UI/Toast/index.jsx @@ -1,7 +1,10 @@ +export * from './ToastFooter/ToastFooter'; export * from './ToastBody/ToastBody'; export * from './ToastButton/ToastButton'; export * from './ToastHeader/ToastHeader'; export * from './ToastSeparator/ToastSeparator'; export * from './CompleteTransferToL1Toast/CompleteTransferToL1Toast'; +export * from './AlphaDisclaimerToast/AlphaDisclaimerToast'; export * from './TransferToast/TransferToast'; export * from './ErrorToast/ErrorToast'; +export * from './CallToActionToast/CallToActionToast'; diff --git a/src/components/UI/TokenBalance/TokenBalance.js b/workspace/apps/starkgate/web/src/components/UI/TokenBalance/TokenBalance.jsx similarity index 84% rename from src/components/UI/TokenBalance/TokenBalance.js rename to workspace/apps/starkgate/web/src/components/UI/TokenBalance/TokenBalance.jsx index c4fac6e2..5e979ce2 100644 --- a/src/components/UI/TokenBalance/TokenBalance.js +++ b/workspace/apps/starkgate/web/src/components/UI/TokenBalance/TokenBalance.jsx @@ -1,9 +1,11 @@ -import {formatBalance, shortenBalance, toClasses} from '@starkware-industries/commons-js-utils'; import PropTypes from 'prop-types'; import React from 'react'; -import {useTransferTranslation} from '../../../hooks'; -import {Loading, LoadingSize, RefreshIcon, RefreshIconSize} from '../index'; +import {useTransferTranslation} from '@hooks'; +import {formatBalance, shortenBalance} from '@starkware-webapps/utils'; +import {toClasses} from '@starkware-webapps/utils-browser'; +import {Loading, LoadingSize, RefreshIcon, RefreshIconSize} from '@ui'; + import styles from './TokenBalance.module.scss'; export const TokenBalance = ({tokenData, onRefreshClick}) => { diff --git a/src/components/UI/TokenBalance/TokenBalance.module.scss b/workspace/apps/starkgate/web/src/components/UI/TokenBalance/TokenBalance.module.scss similarity index 100% rename from src/components/UI/TokenBalance/TokenBalance.module.scss rename to workspace/apps/starkgate/web/src/components/UI/TokenBalance/TokenBalance.module.scss diff --git a/src/components/UI/TokenInput/TokenInput.js b/workspace/apps/starkgate/web/src/components/UI/TokenInput/TokenInput.jsx similarity index 83% rename from src/components/UI/TokenInput/TokenInput.js rename to workspace/apps/starkgate/web/src/components/UI/TokenInput/TokenInput.jsx index b4f06a43..875c2f0c 100644 --- a/src/components/UI/TokenInput/TokenInput.js +++ b/workspace/apps/starkgate/web/src/components/UI/TokenInput/TokenInput.jsx @@ -1,11 +1,11 @@ -import {toClasses} from '@starkware-industries/commons-js-utils'; import PropTypes from 'prop-types'; import React from 'react'; -import {useTransferTranslation} from '../../../hooks'; +import {useTransferTranslation} from '@hooks'; +import {toClasses} from '@starkware-webapps/utils-browser'; // import {MaxButton} from '../MaxButton/MaxButton'; -import {TokenSelector} from '../TokenSelector/TokenSelector'; -import {Input} from '../index'; +import {Input, TokenSelector} from '@ui'; + import styles from './TokenInput.module.scss'; export const TokenInput = ({ @@ -13,7 +13,6 @@ export const TokenInput = ({ hasError, tokenData, isInputDisabled, - onMaxClick, onTokenSelect, onInputChange }) => { diff --git a/src/components/UI/TokenInput/TokenInput.module.scss b/workspace/apps/starkgate/web/src/components/UI/TokenInput/TokenInput.module.scss similarity index 100% rename from src/components/UI/TokenInput/TokenInput.module.scss rename to workspace/apps/starkgate/web/src/components/UI/TokenInput/TokenInput.module.scss diff --git a/src/components/UI/TokenSelector/TokenSelector.js b/workspace/apps/starkgate/web/src/components/UI/TokenSelector/TokenSelector.jsx similarity index 55% rename from src/components/UI/TokenSelector/TokenSelector.js rename to workspace/apps/starkgate/web/src/components/UI/TokenSelector/TokenSelector.jsx index 042de472..91db0b9c 100644 --- a/src/components/UI/TokenSelector/TokenSelector.js +++ b/workspace/apps/starkgate/web/src/components/UI/TokenSelector/TokenSelector.jsx @@ -1,10 +1,10 @@ import PropTypes from 'prop-types'; import React from 'react'; -import {ReactComponent as DownArrowIcon} from '../../../assets/svg/icons/collapse.svg'; -import {useColors} from '../../../hooks'; -import {CircleLogoSize} from '../CircleLogo/CircleLogo'; -import {CircleLogo, Icon} from '../index'; +import {ReactComponent as DownArrowIcon} from '@assets/svg/icons/collapse.svg'; +import {useColors} from '@hooks'; +import {CircleLogo, CircleLogoSize, Icon} from '@ui'; + import styles from './TokenSelector.module.scss'; export const TokenSelector = ({tokenData, onClick}) => { @@ -12,12 +12,16 @@ export const TokenSelector = ({tokenData, onClick}) => { return (
- - {tokenData.symbol} + {tokenData && ( + <> + + {tokenData.symbol} + + )} diff --git a/src/components/UI/TokenSelector/TokenSelector.module.scss b/workspace/apps/starkgate/web/src/components/UI/TokenSelector/TokenSelector.module.scss similarity index 91% rename from src/components/UI/TokenSelector/TokenSelector.module.scss rename to workspace/apps/starkgate/web/src/components/UI/TokenSelector/TokenSelector.module.scss index 8418bd3a..833ff87d 100644 --- a/src/components/UI/TokenSelector/TokenSelector.module.scss +++ b/workspace/apps/starkgate/web/src/components/UI/TokenSelector/TokenSelector.module.scss @@ -7,7 +7,6 @@ font-size: 14px; line-height: 24px; color: $--color-white; - text-transform: capitalize; cursor: pointer; background: $--color-dark-slate-blue; border-radius: 8px; diff --git a/src/components/UI/TransferButton/TransferButton.js b/workspace/apps/starkgate/web/src/components/UI/TransferButton/TransferButton.jsx similarity index 77% rename from src/components/UI/TransferButton/TransferButton.js rename to workspace/apps/starkgate/web/src/components/UI/TransferButton/TransferButton.jsx index ff4eefa7..3421d66a 100644 --- a/src/components/UI/TransferButton/TransferButton.js +++ b/workspace/apps/starkgate/web/src/components/UI/TransferButton/TransferButton.jsx @@ -1,9 +1,9 @@ import PropTypes from 'prop-types'; import React from 'react'; -import {useTransferTranslation} from '../../../hooks'; -import {useAmount} from '../../../providers/TransferProvider'; -import {MainMenuButton} from '../index'; +import {useTransferTranslation} from '@hooks'; +import {useAmount} from '@providers'; +import {MainMenuButton} from '@ui'; export const TransferButton = ({isDisabled, ...props}) => { const {transferBtnTxt, amountBtnTxt} = useTransferTranslation(); diff --git a/src/components/UI/TransferLogContainer/TransferLogContainer.js b/workspace/apps/starkgate/web/src/components/UI/TransferLogContainer/TransferLogContainer.jsx similarity index 66% rename from src/components/UI/TransferLogContainer/TransferLogContainer.js rename to workspace/apps/starkgate/web/src/components/UI/TransferLogContainer/TransferLogContainer.jsx index 3663890f..856f0f2d 100644 --- a/src/components/UI/TransferLogContainer/TransferLogContainer.js +++ b/workspace/apps/starkgate/web/src/components/UI/TransferLogContainer/TransferLogContainer.jsx @@ -1,12 +1,19 @@ import PropTypes from 'prop-types'; import React, {useState} from 'react'; -import {useTransferLogContainerTranslation} from '../../../hooks'; -import {useMenu} from '../../../providers/MenuProvider'; -import {CollapseExpand} from '../CollapseExpand/CollapseExpand'; +import {useTransferLogContainerTranslation} from '@hooks'; +import {useMenu} from '@providers'; +import {CollapseExpand, Loading, LoadingType} from '@ui'; + import styles from './TransferLogContainer.module.scss'; -export const TransferLogContainer = ({transferIndex, children, onShowTransfers}) => { +export const TransferLogContainer = ({ + transferIndex, + isLoading, + onShowTransfers, + onScrollEnd, + children +}) => { const {resetMenuProps} = useMenu(); const {titleTxt, singleOverviewTxt, overviewTxt, emptyMsgTxt, viewMoreTxt, viewLessTxt} = useTransferLogContainerTranslation(); @@ -18,6 +25,13 @@ export const TransferLogContainer = ({transferIndex, children, onShowTransfers}) show && onShowTransfers(); }; + const handleScroll = ({target: {scrollHeight, scrollTop, clientHeight}}) => { + const scrollEnd = scrollHeight - scrollTop === clientHeight; + if (scrollEnd) { + onScrollEnd(); + } + }; + const renderChildren = () => { if (!children) { return
{emptyMsgTxt}
; @@ -29,14 +43,12 @@ export const TransferLogContainer = ({transferIndex, children, onShowTransfers}) ? `${children.length} ${overviewTxt}` : `1 ${singleOverviewTxt}`}{' '} {showChildren ? viewLessTxt : viewMoreTxt} - {showChildren || transferIndex > -1 ? ( + {(showChildren || transferIndex > -1) && (
-
+
{children}
- ) : ( - '' )}
); @@ -48,13 +60,15 @@ export const TransferLogContainer = ({transferIndex, children, onShowTransfers}) {titleTxt}
- {renderChildren()} + {isLoading ? : renderChildren()}
); }; TransferLogContainer.propTypes = { - children: PropTypes.oneOfType([PropTypes.array, PropTypes.object]), transferIndex: PropTypes.number, - onShowTransfers: PropTypes.func + isLoading: PropTypes.bool, + onShowTransfers: PropTypes.func, + onScrollEnd: PropTypes.func, + children: PropTypes.oneOfType([PropTypes.array, PropTypes.object]) }; diff --git a/src/components/UI/TransferLogContainer/TransferLogContainer.module.scss b/workspace/apps/starkgate/web/src/components/UI/TransferLogContainer/TransferLogContainer.module.scss similarity index 97% rename from src/components/UI/TransferLogContainer/TransferLogContainer.module.scss rename to workspace/apps/starkgate/web/src/components/UI/TransferLogContainer/TransferLogContainer.module.scss index aaae3243..1010ce19 100644 --- a/src/components/UI/TransferLogContainer/TransferLogContainer.module.scss +++ b/workspace/apps/starkgate/web/src/components/UI/TransferLogContainer/TransferLogContainer.module.scss @@ -2,7 +2,7 @@ .transferLogContainer { color: $--color-white; - padding: 16px 0 16px 16px; + padding: 15px; border-radius: 8px; border: 1px solid $--color-indigo; margin: 16px 0; diff --git a/src/components/UI/WalletButton/WalletButton.js b/workspace/apps/starkgate/web/src/components/UI/WalletButton/WalletButton.jsx similarity index 86% rename from src/components/UI/WalletButton/WalletButton.js rename to workspace/apps/starkgate/web/src/components/UI/WalletButton/WalletButton.jsx index e712ecb7..35ff4475 100644 --- a/src/components/UI/WalletButton/WalletButton.js +++ b/workspace/apps/starkgate/web/src/components/UI/WalletButton/WalletButton.jsx @@ -1,10 +1,12 @@ -import {WalletStatus} from '@starkware-industries/commons-js-enums'; -import {evaluate, shortenAddress, toClasses} from '@starkware-industries/commons-js-utils'; import PropTypes from 'prop-types'; import React from 'react'; -import {useColors, useHeaderTranslation} from '../../../hooks'; -import {Button, DynamicIcon} from '../index'; +import {useColors, useHeaderTranslation} from '@hooks'; +import {isConnected, isConnecting} from '@starkware-webapps/enums'; +import {evaluate, shortenAddress} from '@starkware-webapps/utils'; +import {toClasses} from '@starkware-webapps/utils-browser'; +import {Button, DynamicIcon} from '@ui'; + import styles from './WalletButton.module.scss'; export const WalletButtonIconSize = { @@ -14,7 +16,7 @@ export const WalletButtonIconSize = { }; export const WalletButton = ({account, chain, network, logoPath, status, onClick}) => { - return status === WalletStatus.CONNECTED ? ( + return isConnected(status) ? ( ) : ( @@ -59,7 +61,7 @@ AccountWalletButton.propTypes = { const ConnectWalletButton = ({onClick, network, status}) => { const {colorOrangeSoda, colorFlame, colorWhite} = useColors(); const {connectWalletBtnTxt, connectingWalletBtnTxt} = useHeaderTranslation(); - const connecting = status === WalletStatus.CONNECTING; + const connecting = isConnecting(status); return (
) }, - { - question: 'Why are there restrictions on using the browser?', - answer: ( - <> -

- In StarkGate Alpha, your transfer’s log history is saved in the local storage of the - browser. -

-

As a result:

-
    -
  • Clearing the local storage will cause this data to be lost
  • -
  • Logging to StarkGate using multiple devices/browsers can cause data inconsistency
  • -
-

Therefore, we recommend when using StarkGate Alpha:

-
    -
  • Refrain from closing or switching browsers (or PC)
  • -
  • Do not refresh the page while the transfer is being processed
  • -
  • Do not delete the local storage of the browser
  • -
- - ) - }, - // { - // question: - // "I can't find solutions to the problems I encountered while using StarkGate. Where can I get help?", - // answer: ( - //

- // We have opened a{' '} - // - // community channel on Discord - // {' '} - // to help each other use StarkGate. - //

- // ) - // }, { question: 'Why can’t I use StarkGate with {insert favorite}Token?', answer: (
  1. StarkGate Alpha on Goerli supports ETH and a few other ERC-20 tokens. The full list and - the relevant contract addresses on Goerli, both on Ethereum and StarkNet, are available in + the relevant contract addresses on Goerli, both on Ethereum and Starknet, are available in this{' '} repo diff --git a/src/routes/ProtectedRoute.js b/workspace/apps/starkgate/web/src/routes/ProtectedRoute.jsx similarity index 100% rename from src/routes/ProtectedRoute.js rename to workspace/apps/starkgate/web/src/routes/ProtectedRoute.jsx diff --git a/src/routes/Terms/Terms.js b/workspace/apps/starkgate/web/src/routes/Terms/Terms.jsx similarity index 89% rename from src/routes/Terms/Terms.js rename to workspace/apps/starkgate/web/src/routes/Terms/Terms.jsx index 6a3da077..582280ca 100644 --- a/src/routes/Terms/Terms.js +++ b/workspace/apps/starkgate/web/src/routes/Terms/Terms.jsx @@ -1,14 +1,14 @@ -import {toClasses} from '@starkware-industries/commons-js-utils'; import PropTypes from 'prop-types'; import React, {useEffect, useRef, useState} from 'react'; import {useNavigate} from 'react-router-dom'; -import {Button, FullScreenContainer} from '../../components/UI'; -import TermsOfUse from '../../config/terms'; -import {useColors, useTermsTracking, useTermsTranslation} from '../../hooks'; -import {useTerms} from '../../providers/AppProvider'; -import {useL1Wallet, useL2Wallet} from '../../providers/WalletsProvider'; +import {useColors, useTermsTracking, useTermsTranslation} from '@hooks'; +import {useL1Wallet, useL2Wallet, useTerms} from '@providers'; +import {toClasses} from '@starkware-webapps/utils-browser'; +import {Button, FullScreenContainer} from '@ui'; + import styles from './Terms.module.scss'; +import TermsOfUse from './TermsOfUse'; export const Terms = () => { const [trackTermsScreen] = useTermsTracking(); diff --git a/src/routes/Terms/Terms.module.scss b/workspace/apps/starkgate/web/src/routes/Terms/Terms.module.scss similarity index 100% rename from src/routes/Terms/Terms.module.scss rename to workspace/apps/starkgate/web/src/routes/Terms/Terms.module.scss diff --git a/src/config/terms.js b/workspace/apps/starkgate/web/src/routes/Terms/TermsOfUse.jsx similarity index 98% rename from src/config/terms.js rename to workspace/apps/starkgate/web/src/routes/Terms/TermsOfUse.jsx index 97702202..d0b9a9c2 100644 --- a/src/config/terms.js +++ b/workspace/apps/starkgate/web/src/routes/Terms/TermsOfUse.jsx @@ -1,13 +1,13 @@ import React from 'react'; import { - STARKWARE_SITE_URL, - STARKNET_DOCS_URL, - STARKGATE_MAIL_ADDRESS, STARKGATE_CONTRACTS_REPO_URL, + STARKGATE_MAIL_ADDRESS, + STARKNET_DOCS_URL, STARKNET_PRIVACY_POLICY_URL, - STARKNET_TERMS_URL -} from './constants'; + STARKNET_TERMS_URL, + STARKWARE_SITE_URL +} from '@config/constants'; const appUrl = window.location.origin; @@ -26,9 +26,9 @@ export default ( (the "Site" ), a website that provides information and hosts a user interface (the " Interface - ") to a pair of smart contracts on the Ethereum blockchain and on the StarkNet network + ") to a pair of smart contracts on the Ethereum blockchain and on the Starknet network that facilitates your ability to conduct transactions with your ETH and ERC-20 tokens that - reside on Layer 1 in a gas-efficient manner, via the StarkNet Alpha network and its + reside on Layer 1 in a gas-efficient manner, via the Starknet Alpha network and its STARK-based computational compression capabilities (the "Bridge "). Each User may use the Site, Interface and/or Bridge1 in accordance with, and subject to, the terms and conditions hereunder. @@ -96,7 +96,7 @@ export default (

    The Site and Interface do not offer the Bridge, which is a pair of autonomously - functioning smart contracts on the Ethereum Blockchain and StarkNet, and which may be + functioning smart contracts on the Ethereum Blockchain and Starknet, and which may be accessed independently without use of the Site or the Interface. 2 @@ -124,14 +124,14 @@ export default (

    Decentralized Protocol: The Bridge is a pair of decentralized smart contracts, one - running on the Ethereum blockchain and the other on StarkNet. The Interface provides an + running on the Ethereum blockchain and the other on Starknet. The Interface provides an Interface to access the Bridge in a user-friendly manner, [however due to its decentralized nature StarkWare does not control the Bridge1]. The Bridge is non-custodial. StarkWare does not have any ability to control or modify how you conduct transactions on - Ethereum or StarkNet. By using the Bridge, you acknowledge and recognize that use of the + Ethereum or Starknet. By using the Bridge, you acknowledge and recognize that use of the Bridge is at your own risk and will be subject to the rules encoded within the Bridge, including as to when and on what terms and at which speed your transactions are conducted - on Ethereum and/or StarkNet, neither of which StarkWare can influence or fully control. + on Ethereum and/or Starknet, neither of which StarkWare can influence or fully control.

    Risk Disclosures Relating to Blockchain. By utilizing the Bridge, you represent @@ -159,7 +159,7 @@ export default ( .

    - We are not responsible for any loss: The Bridge, StarkNet and other blockchain + We are not responsible for any loss: The Bridge, Starknet and other blockchain networks are decentralized systems that are still under active development, and therefore: (a) may contain bugs, errors and defects, (b) may function improperly or be subject to periods of downtime and unavailability, (c) may result in total or partial loss or @@ -167,7 +167,7 @@ export default ( modified at any time, including through the release of subsequent versions, all with or without notice to you, or (e) may have security vulnerabilities and be subject to hacking. StarkWare will not be liable or responsible for any losses or damages to you, including - without limitation any loss of funds on Ethereum and/or StarkNet with which you conduct + without limitation any loss of funds on Ethereum and/or Starknet with which you conduct your transactions using the Bridge, as a result of any of the foregoing.

    diff --git a/src/routes/index.js b/workspace/apps/starkgate/web/src/routes/index.jsx similarity index 100% rename from src/routes/index.js rename to workspace/apps/starkgate/web/src/routes/index.jsx diff --git a/src/styles/colors.module.scss b/workspace/apps/starkgate/web/src/styles/colors.module.scss similarity index 96% rename from src/styles/colors.module.scss rename to workspace/apps/starkgate/web/src/styles/colors.module.scss index 9a172bfb..64b7a828 100644 --- a/src/styles/colors.module.scss +++ b/workspace/apps/starkgate/web/src/styles/colors.module.scss @@ -2,6 +2,7 @@ $--color-white: #fff; $--color-black: #000; $--color-gainsboro: #d3dae3; $--color-gainsboro-1: #d5d9eb; +$--color-raptures-light: #f7f3e7; $--color-space-cadet: #16184e; $--color-space-cadet-1: #1c1e52; $--color-space-cadet-2: #23255b; @@ -43,6 +44,7 @@ $--color-international-orange-aerospace: #ff4f0a; $--color-dark-jungle-green: #101828; $--color-bright-navy-blue: #287adb; $--color-lapis-lazuli: #3467a3; +$--color-iris: #6941c6; :export { colorBlack: $--color-black; @@ -70,4 +72,5 @@ $--color-lapis-lazuli: #3467a3; colorBrilliantAzure: $--color-brilliant-azure; colorBrightNavyBlue: $--color-bright-navy-blue; colorLapizLazuli: $--color-lapis-lazuli; + colorIris: $--color-iris; } diff --git a/src/styles/fonts.module.scss b/workspace/apps/starkgate/web/src/styles/fonts.module.scss similarity index 100% rename from src/styles/fonts.module.scss rename to workspace/apps/starkgate/web/src/styles/fonts.module.scss diff --git a/src/styles/variables.module.scss b/workspace/apps/starkgate/web/src/styles/variables.module.scss similarity index 100% rename from src/styles/variables.module.scss rename to workspace/apps/starkgate/web/src/styles/variables.module.scss diff --git a/src/utils/index.js b/workspace/apps/starkgate/web/src/utils/index.js similarity index 100% rename from src/utils/index.js rename to workspace/apps/starkgate/web/src/utils/index.js diff --git a/src/utils/token.js b/workspace/apps/starkgate/web/src/utils/token.js similarity index 79% rename from src/utils/token.js rename to workspace/apps/starkgate/web/src/utils/token.js index 8f7c9310..9471d94d 100644 --- a/src/utils/token.js +++ b/workspace/apps/starkgate/web/src/utils/token.js @@ -1,4 +1,4 @@ -import Tokens from '../config/tokens'; +import {Tokens} from '@starkgate/shared'; export const isEth = symbol => { return symbol === Tokens.L1.ETH.symbol; diff --git a/workspace/apps/starkgate/web/src/vite-env.d.ts b/workspace/apps/starkgate/web/src/vite-env.d.ts new file mode 100644 index 00000000..53619ca8 --- /dev/null +++ b/workspace/apps/starkgate/web/src/vite-env.d.ts @@ -0,0 +1,2 @@ +declare const APP_NAME: string; +declare const APP_VERSION: string; diff --git a/workspace/apps/starkgate/web/tsconfig.json b/workspace/apps/starkgate/web/tsconfig.json new file mode 100644 index 00000000..3e918c64 --- /dev/null +++ b/workspace/apps/starkgate/web/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "@starkware-webapps/tsconfig/react.json", + "compilerOptions": { + "outDir": "dist" + }, + "include": ["src"], + "exclude": ["dist", "node_modules"], + "references": [{"path": "./tsconfig.node.json"}] +} diff --git a/workspace/apps/starkgate/web/tsconfig.node.json b/workspace/apps/starkgate/web/tsconfig.node.json new file mode 100644 index 00000000..0a4e327f --- /dev/null +++ b/workspace/apps/starkgate/web/tsconfig.node.json @@ -0,0 +1,10 @@ +{ + "extends": "@starkware-webapps/tsconfig/node.json", + "compilerOptions": { + "composite": true, + "module": "ESNext", + "moduleResolution": "Node", + "allowSyntheticDefaultImports": true + }, + "include": ["vite.config.ts"] +} diff --git a/workspace/apps/starkgate/web/vite.config.ts b/workspace/apps/starkgate/web/vite.config.ts new file mode 100644 index 00000000..77055f34 --- /dev/null +++ b/workspace/apps/starkgate/web/vite.config.ts @@ -0,0 +1,73 @@ +import {resolve} from 'path'; +import replace from 'rollup-plugin-re'; +import {ConfigEnv, defineConfig, loadEnv} from 'vite'; +import dynamicImport from 'vite-plugin-dynamic-import'; +import VitePluginHtmlEnv from 'vite-plugin-html-env'; +import svgr from 'vite-plugin-svgr'; + +import react from '@vitejs/plugin-react'; + +export default defineConfig(({mode}: ConfigEnv) => { + const prodMode = mode === 'mainnet' || mode === 'goerli'; + const isNetlifyBuild = process.env.NETLIFY === 'true'; + + if (isNetlifyBuild) { + // Read envs from the deployment folder + const [projectName, projectType] = process.env.npm_package_name.substring(1).split('/'); + const commonEnvs = loadEnv(mode, process.cwd()); + const envs = loadEnv(projectType, `../../../../infra/deployment/${projectName}/${mode}`); + process.env = {...process.env, ...commonEnvs, ...envs}; + } + + return { + plugins: [ + react(), + svgr(), + dynamicImport(), + VitePluginHtmlEnv({compiler: true}), + replace({ + patterns: [ + { + match: /js-sha256/, + test: 'eval("require(\'crypto\')")', + replace: "require('crypto')" + }, + { + match: /js-sha256/, + test: 'eval("require(\'buffer\').Buffer")', + replace: "require('buffer').Buffer" + } + ] + }) + ], + resolve: { + alias: [ + {find: '@analytics', replacement: resolve(__dirname, 'src/analytics')}, + {find: '@abis', replacement: resolve(__dirname, 'src/abis')}, + {find: '@api', replacement: resolve(__dirname, 'src/api')}, + {find: '@assets', replacement: resolve(__dirname, 'src/assets')}, + {find: '@config', replacement: resolve(__dirname, 'src/config')}, + {find: '@enums', replacement: resolve(__dirname, 'src/enums')}, + {find: '@hooks', replacement: resolve(__dirname, 'src/hooks')}, + {find: '@providers', replacement: resolve(__dirname, 'src/providers')}, + {find: '@routes', replacement: resolve(__dirname, 'src/routes')}, + {find: '@styles', replacement: resolve(__dirname, 'src/styles')}, + {find: '@utils', replacement: resolve(__dirname, 'src/utils')}, + {find: '@containers', replacement: resolve(__dirname, 'src/components/Containers')}, + {find: '@ui', replacement: resolve(__dirname, 'src/components/UI')}, + {find: '@features', replacement: resolve(__dirname, 'src/components/Features')} + ] + }, + define: { + global: 'window', + APP_VERSION: JSON.stringify(process.env.npm_package_version), + APP_NAME: JSON.stringify(process.env.npm_package_name) + }, + build: { + sourcemap: !prodMode, + commonjsOptions: { + transformMixedEsModules: true + } + } + }; +}); diff --git a/workspace/packages/config/.eslintignore b/workspace/packages/config/.eslintignore new file mode 100644 index 00000000..f06235c4 --- /dev/null +++ b/workspace/packages/config/.eslintignore @@ -0,0 +1,2 @@ +node_modules +dist diff --git a/workspace/packages/config/.eslintrc.cjs b/workspace/packages/config/.eslintrc.cjs new file mode 100644 index 00000000..c38eb59d --- /dev/null +++ b/workspace/packages/config/.eslintrc.cjs @@ -0,0 +1,4 @@ +module.exports = { + root: true, + extends: ['ts'] +}; diff --git a/workspace/packages/config/.gitignore b/workspace/packages/config/.gitignore new file mode 100644 index 00000000..f06235c4 --- /dev/null +++ b/workspace/packages/config/.gitignore @@ -0,0 +1,2 @@ +node_modules +dist diff --git a/workspace/packages/config/.prettierignore b/workspace/packages/config/.prettierignore new file mode 100644 index 00000000..e995560f --- /dev/null +++ b/workspace/packages/config/.prettierignore @@ -0,0 +1,4 @@ +node_modules +dist +CHANGELOG.md +.turbo \ No newline at end of file diff --git a/workspace/packages/config/package.json b/workspace/packages/config/package.json new file mode 100644 index 00000000..1602f932 --- /dev/null +++ b/workspace/packages/config/package.json @@ -0,0 +1,41 @@ +{ + "name": "@starkware-webapps/config", + "version": "0.0.0", + "private": true, + "description": "", + "license": "ISC", + "author": "Dan Ziv", + "type": "module", + "exports": { + ".": { + "require": "./dist/index.cjs", + "import": "./dist/index.js" + } + }, + "types": "./dist/types/index.d.ts", + "files": [ + "dist" + ], + "scripts": { + "prebuild": "pnpm run clean", + "build": "pnpm run prebuild && vite build", + "clean": "rm -rf ./dist", + "dev": "pnpm run prebuild && vite build --watch --mode development", + "docs:generate": "typedoc", + "docs:watch": "typedoc --watch", + "format": "sort-package-json && prettier --write \"**/*.+(ts|js|cjs|json|md|html|yml)\"", + "lint": "eslint .", + "lint:fix": "eslint --fix .", + "test": "echo \"No tests found\"" + }, + "devDependencies": { + "@starkware-webapps/tsconfig": "workspace:*", + "eslint": "^8.15.0", + "eslint-config-ts": "workspace:*", + "typedoc": "^0.23.10", + "typedoc-plugin-markdown": "^3.13.4", + "typescript": "^4.7.3", + "vite": "^4.1.0", + "vite-plugin-dts": "^2.0.1" + } +} diff --git a/workspace/packages/config/src/cookies.ts b/workspace/packages/config/src/cookies.ts new file mode 100644 index 00000000..6ce93bf2 --- /dev/null +++ b/workspace/packages/config/src/cookies.ts @@ -0,0 +1,2 @@ +export const CONNECTED_L1_WALLET_ID_COOKIE_NAME = 'connected_l1_wallet_id'; +export const CONNECTED_L2_WALLET_ID_COOKIE_NAME = 'connected_l2_wallet_id'; diff --git a/workspace/packages/config/src/index.ts b/workspace/packages/config/src/index.ts new file mode 100644 index 00000000..ce2839d1 --- /dev/null +++ b/workspace/packages/config/src/index.ts @@ -0,0 +1,4 @@ +export * from './cookies'; +export * from './labels'; +export * from './urls'; +export * from './values'; diff --git a/workspace/packages/config/src/labels.ts b/workspace/packages/config/src/labels.ts new file mode 100644 index 00000000..2d81e2c2 --- /dev/null +++ b/workspace/packages/config/src/labels.ts @@ -0,0 +1,3 @@ +export const ETHERSCAN = 'Etherscan'; +export const VOYAGER = 'Voyager'; +export const STARKSCAN = 'StarkScan'; diff --git a/workspace/packages/config/src/urls.ts b/workspace/packages/config/src/urls.ts new file mode 100644 index 00000000..d7e5e092 --- /dev/null +++ b/workspace/packages/config/src/urls.ts @@ -0,0 +1,20 @@ +export const DISCORD_LINK_URL = 'https://starknet.io/discord'; +export const STARKSCAN_TX_URL = 'https://testnet.starkscan.co/tx/{{transactionHash}}'; +export const STARKSCAN_ACCOUNT_URL = 'https://testnet.starkscan.co/contract/{{account}}'; +export const STARKWARE_SITE_URL = 'https://starkware.co/'; +export const STARKNET_SITE_URL = 'https://starknet.io'; +export const STARKNET_DOCS_URL = 'https://docs.starknet.io/documentation/develop'; +export const STARKGATE_DOCS_URL = `${STARKNET_DOCS_URL}/L1-L2_Communication/token-bridge`; +export const STARKGATE_MAIL_ADDRESS = 'starkgate@starknet.io'; +export const STARKNET_ADDRESSES_REPO_URL = 'https://github.com/starkware-libs/starknet-addresses'; +export const STARKNET_ECOSYSTEM_URL = 'https://starknet-ecosystem.com'; +export const STARKGATE_FRONTEND_REPO_URL = 'https://github.com/starkware-libs/starkgate-frontend'; +export const STARKGATE_ALPHA_LIMITATIONS_URL = `${STARKGATE_DOCS_URL}/#starkgate_alpha_limitations`; +export const STARKGATE_CONTRACTS_REPO_URL = + 'https://github.com/starkware-libs/starkgate-contracts/tree/main/src/starkware/starknet/apps/starkgate'; +export const FEEDBACK_FORM_URL_GOERLI = + 'https://forms.reform.app/starkware/StarkGate_Feedback/yhyalh'; +export const FEEDBACK_FORM_URL_MAINNET = + 'https://forms.reform.app/TeRuSp/StarkGate-Feedback-Mainnet/bcoscx'; +export const STARKWARE_COMPLIANCE_MAIL_ADDRESS = 'compliance@starkware.co'; +export const S3_ASSETS_BUCKET_URL = 'https://starkware-web.s3.us-east-2.amazonaws.com'; diff --git a/workspace/packages/config/src/values.ts b/workspace/packages/config/src/values.ts new file mode 100644 index 00000000..71d9dac4 --- /dev/null +++ b/workspace/packages/config/src/values.ts @@ -0,0 +1,2 @@ +export const FETCH_TOKEN_BALANCE_MAX_RETRY = 5; +export const HIDE_ELEMENT_COOKIE_DURATION_DAYS = 1; diff --git a/workspace/packages/config/tsconfig.json b/workspace/packages/config/tsconfig.json new file mode 100644 index 00000000..6c526268 --- /dev/null +++ b/workspace/packages/config/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "@starkware-webapps/tsconfig/base.json", + "compilerOptions": { + "outDir": "dist" + }, + "include": ["src"], + "exclude": ["dist", "node_modules"], + "references": [{"path": "./tsconfig.node.json"}] +} diff --git a/workspace/packages/config/tsconfig.node.json b/workspace/packages/config/tsconfig.node.json new file mode 100644 index 00000000..2f1c89ad --- /dev/null +++ b/workspace/packages/config/tsconfig.node.json @@ -0,0 +1,7 @@ +{ + "extends": "@starkware-webapps/tsconfig/node.json", + "compilerOptions": { + "module": "ESNext" + }, + "include": ["vite.config.ts"] +} diff --git a/workspace/packages/config/typedoc.json b/workspace/packages/config/typedoc.json new file mode 100644 index 00000000..de185782 --- /dev/null +++ b/workspace/packages/config/typedoc.json @@ -0,0 +1,5 @@ +{ + "entryPoints": ["./src/index.ts"], + "name": "@starkware-webapps/config", + "includeVersion": true +} diff --git a/workspace/packages/config/vite.config.ts b/workspace/packages/config/vite.config.ts new file mode 100644 index 00000000..dfb3fe63 --- /dev/null +++ b/workspace/packages/config/vite.config.ts @@ -0,0 +1,30 @@ +import {resolve} from 'path'; +import {defineConfig} from 'vite'; +import dts from 'vite-plugin-dts'; + +type ViteConfigInput = { + mode: string; +}; + +export default ({mode}: ViteConfigInput) => { + const prodMode = mode === 'production'; + + return defineConfig({ + plugins: [ + dts({ + insertTypesEntry: true, + outputDir: 'dist/types' + }) + ], + build: { + lib: { + entry: resolve(__dirname, 'src/index.ts'), + name: 'WebAppsConfig', + formats: ['es', 'cjs'], + fileName: 'index' + }, + sourcemap: !prodMode, + copyPublicDir: false + } + }); +}; diff --git a/workspace/packages/enums/.eslintignore b/workspace/packages/enums/.eslintignore new file mode 100644 index 00000000..f06235c4 --- /dev/null +++ b/workspace/packages/enums/.eslintignore @@ -0,0 +1,2 @@ +node_modules +dist diff --git a/workspace/packages/enums/.eslintrc.cjs b/workspace/packages/enums/.eslintrc.cjs new file mode 100644 index 00000000..c38eb59d --- /dev/null +++ b/workspace/packages/enums/.eslintrc.cjs @@ -0,0 +1,4 @@ +module.exports = { + root: true, + extends: ['ts'] +}; diff --git a/workspace/packages/enums/.prettierignore b/workspace/packages/enums/.prettierignore new file mode 100644 index 00000000..e995560f --- /dev/null +++ b/workspace/packages/enums/.prettierignore @@ -0,0 +1,4 @@ +node_modules +dist +CHANGELOG.md +.turbo \ No newline at end of file diff --git a/workspace/packages/enums/package.json b/workspace/packages/enums/package.json new file mode 100644 index 00000000..d8c90439 --- /dev/null +++ b/workspace/packages/enums/package.json @@ -0,0 +1,41 @@ +{ + "name": "@starkware-webapps/enums", + "version": "0.0.0", + "private": true, + "description": "", + "license": "ISC", + "author": "Dan Ziv", + "type": "module", + "exports": { + ".": { + "require": "./dist/index.cjs", + "import": "./dist/index.js" + } + }, + "types": "./dist/types/index.d.ts", + "files": [ + "dist" + ], + "scripts": { + "prebuild": "pnpm run clean", + "build": "pnpm run prebuild && vite build", + "clean": "rm -rf ./dist", + "dev": "pnpm run prebuild && vite build --watch --mode development", + "docs:generate": "typedoc", + "docs:watch": "typedoc --watch", + "format": "sort-package-json && prettier --write \"**/*.+(ts|js|cjs|json|md|html|yml)\"", + "lint": "eslint .", + "lint:fix": "eslint --fix .", + "test": "echo \"No tests found\"" + }, + "devDependencies": { + "@starkware-webapps/tsconfig": "workspace:*", + "eslint": "^8.15.0", + "eslint-config-ts": "workspace:*", + "typedoc": "^0.23.10", + "typedoc-plugin-markdown": "^3.13.4", + "typescript": "^4.7.3", + "vite": "^4.1.0", + "vite-plugin-dts": "^2.0.1" + } +} diff --git a/workspace/packages/enums/src/BrowserType.ts b/workspace/packages/enums/src/BrowserType.ts new file mode 100644 index 00000000..4b785ad2 --- /dev/null +++ b/workspace/packages/enums/src/BrowserType.ts @@ -0,0 +1,8 @@ +export enum BrowserType { + EDGE = 'Edge', + OPERA = 'Opera', + CHROME = 'Chrome', + FIREFOX = 'Firefox', + SAFARI = 'Safari', + INTERNET_EXPLORER = 'Internet Explorer' +} diff --git a/workspace/packages/enums/src/ChainInfo.ts b/workspace/packages/enums/src/ChainInfo.ts new file mode 100644 index 00000000..341d9f00 --- /dev/null +++ b/workspace/packages/enums/src/ChainInfo.ts @@ -0,0 +1,44 @@ +import {ChainTypeL1, ChainTypeL2} from './ChainType'; + +export type IChainInfo = { + NAME: string; + EXPLORER_URL: string; + CHAIN?: string; + ID_PREFIX?: string; +}; + +export type ChainsInfo = { + L1: { + [Chain in ChainTypeL1]: IChainInfo; + }; + L2: { + [Chain in ChainTypeL2]: IChainInfo; + }; +}; + +export const ChainInfo: ChainsInfo = { + L1: { + [ChainTypeL1.MAIN]: { + NAME: 'Ethereum Mainnet', + EXPLORER_URL: 'https://etherscan.io' + }, + [ChainTypeL1.GOERLI]: { + NAME: 'Ethereum Goerli', + EXPLORER_URL: 'https://goerli.etherscan.io' + } + }, + L2: { + [ChainTypeL2.MAIN]: { + CHAIN: 'Mainnet', + NAME: 'Starknet Mainnet', + ID_PREFIX: '23448594291968334', + EXPLORER_URL: 'https://starkscan.co' + }, + [ChainTypeL2.GOERLI]: { + CHAIN: 'Goerli', + NAME: 'Starknet Goerli', + ID_PREFIX: '1536727068981429685321', + EXPLORER_URL: 'https://testnet.starkscan.co' + } + } +}; diff --git a/workspace/packages/enums/src/ChainType.ts b/workspace/packages/enums/src/ChainType.ts new file mode 100644 index 00000000..e5a74ab3 --- /dev/null +++ b/workspace/packages/enums/src/ChainType.ts @@ -0,0 +1,28 @@ +export type IChainType = { + [chain: string]: string | number; +}; + +export enum ChainTypeL1 { + MAIN = 1, + GOERLI = 5 +} + +export enum ChainTypeL2 { + MAIN = 'SN_MAIN', + GOERLI = 'SN_GOERLI' +} + +export type ChainsType = { + L1: IChainType; + L2: IChainType; +}; + +export const ChainType: ChainsType = { + L1: ChainTypeL1, + L2: ChainTypeL2 +}; + +export const isL2Testnet = (chain: ChainTypeL2) => chain === ChainTypeL2.GOERLI; +export const isL2Mainnet = (chain: ChainTypeL2) => chain === ChainTypeL2.MAIN; +export const isL1Testnet = (chain: ChainTypeL1) => chain === ChainTypeL1.GOERLI; +export const isL1Mainnet = (chain: ChainTypeL1) => chain === ChainTypeL1.MAIN; diff --git a/workspace/packages/enums/src/EventName.ts b/workspace/packages/enums/src/EventName.ts new file mode 100644 index 00000000..e300ae86 --- /dev/null +++ b/workspace/packages/enums/src/EventName.ts @@ -0,0 +1,19 @@ +export type IEventName = { + [event: string]: string; +}; + +export enum EventNameL1 { + LOG_DEPOSIT = 'LogDeposit', + LOG_WITHDRAWAL = 'LogWithdrawal', + LOG_MESSAGE_TO_L2 = 'LogMessageToL2' +} + +export type EventsName = { + L1: IEventName; + L2: null; +}; + +export const EventName: EventsName = { + L1: EventNameL1, + L2: null +}; diff --git a/workspace/packages/enums/src/LoginErrorType.ts b/workspace/packages/enums/src/LoginErrorType.ts new file mode 100644 index 00000000..1b8354b4 --- /dev/null +++ b/workspace/packages/enums/src/LoginErrorType.ts @@ -0,0 +1,4 @@ +export enum LoginErrorType { + UNSUPPORTED_BROWSER, + UNSUPPORTED_CHAIN_ID +} diff --git a/workspace/packages/enums/src/NetworkType.ts b/workspace/packages/enums/src/NetworkType.ts new file mode 100644 index 00000000..96ae1ece --- /dev/null +++ b/workspace/packages/enums/src/NetworkType.ts @@ -0,0 +1,7 @@ +export enum NetworkType { + L1 = 'Ethereum', + L2 = 'Starknet' +} + +export const isL1Network = (network: NetworkType) => network === NetworkType.L1; +export const isL2Network = (network: NetworkType) => network === NetworkType.L2; diff --git a/workspace/packages/enums/src/SelectorName.ts b/workspace/packages/enums/src/SelectorName.ts new file mode 100644 index 00000000..ba8595f5 --- /dev/null +++ b/workspace/packages/enums/src/SelectorName.ts @@ -0,0 +1,3 @@ +export enum SelectorName { + HANDLE_DEPOSIT = 'handle_deposit' +} diff --git a/workspace/packages/enums/src/TransactionHashPrefix.ts b/workspace/packages/enums/src/TransactionHashPrefix.ts new file mode 100644 index 00000000..d4deaba6 --- /dev/null +++ b/workspace/packages/enums/src/TransactionHashPrefix.ts @@ -0,0 +1,4 @@ +export enum TransactionHashPrefix { + INVOKE = '115923154332517', + L1_HANDLER = '510926345461491391292786' +} diff --git a/workspace/packages/enums/src/TransactionStatus.ts b/workspace/packages/enums/src/TransactionStatus.ts new file mode 100644 index 00000000..ab2d0abf --- /dev/null +++ b/workspace/packages/enums/src/TransactionStatus.ts @@ -0,0 +1,58 @@ +export enum TransactionStatus { + REJECTED = 'REJECTED', + NOT_RECEIVED = 'NOT_RECEIVED', + RECEIVED = 'RECEIVED', + PENDING = 'PENDING', + ACCEPTED_ON_L2 = 'ACCEPTED_ON_L2', + ACCEPTED_ON_L1 = 'ACCEPTED_ON_L1' +} + +export const TransactionStatusFriendlyMessage: { + [status in TransactionStatus]: string; +} = { + [TransactionStatus.REJECTED]: 'Invalid transaction', + [TransactionStatus.NOT_RECEIVED]: 'Waiting to be accepted on L2', + [TransactionStatus.RECEIVED]: 'Waiting to be accepted on L2', + [TransactionStatus.PENDING]: 'Accepted on L2', + [TransactionStatus.ACCEPTED_ON_L2]: 'Accepted on L2', + [TransactionStatus.ACCEPTED_ON_L1]: 'Proved and accepted on L1' +}; + +export const TransactionPendingStatuses: Array = [ + TransactionStatus.NOT_RECEIVED, + TransactionStatus.RECEIVED +]; + +export const TransactionCompletedStatuses: Array = [ + TransactionStatus.REJECTED, + TransactionStatus.ACCEPTED_ON_L1 +]; + +export const TransactionConsumedStatuses: Array = [ + TransactionStatus.ACCEPTED_ON_L2, + TransactionStatus.PENDING +]; + +export enum TransactionStatusStep { + NOT_RECEIVED = 0, + RECEIVED, + PENDING, + ACCEPTED_ON_L2, + ACCEPTED_ON_L1, + REJECTED +} + +export const isPending = (status: TransactionStatus): boolean => + TransactionPendingStatuses.includes(status); + +export const isConsumed = (status: TransactionStatus): boolean => + TransactionConsumedStatuses.includes(status); + +export const isCompleted = (status: TransactionStatus): boolean => + TransactionCompletedStatuses.includes(status); + +export const isRejected = (status: TransactionStatus): boolean => + status === TransactionStatus.REJECTED; + +export const isOnChain = (status: TransactionStatus): boolean => + status === TransactionStatus.ACCEPTED_ON_L1; diff --git a/workspace/packages/enums/src/WalletErrorType.ts b/workspace/packages/enums/src/WalletErrorType.ts new file mode 100644 index 00000000..8a760ca2 --- /dev/null +++ b/workspace/packages/enums/src/WalletErrorType.ts @@ -0,0 +1,4 @@ +export enum WalletErrorType { + CONNECTION_REJECTED_ERROR = 'ConnectionRejectedError', + CHAIN_UNSUPPORTED_ERROR = 'ChainUnsupportedError' +} diff --git a/workspace/packages/enums/src/WalletId.ts b/workspace/packages/enums/src/WalletId.ts new file mode 100644 index 00000000..fcade7f3 --- /dev/null +++ b/workspace/packages/enums/src/WalletId.ts @@ -0,0 +1,22 @@ +export type IWalletId = { + [wallet: string]: string; +}; + +export enum WalletIdL1 { + METAMASK = 'metamask', + COINBASE = 'coinbase' +} + +export enum WalletIdL2 { + GSW = 'gsw' +} + +export type WalletIdType = { + L1: IWalletId; + L2: IWalletId; +}; + +export const WalletId: WalletIdType = { + L1: WalletIdL1, + L2: WalletIdL2 +}; diff --git a/workspace/packages/enums/src/WalletStatus.ts b/workspace/packages/enums/src/WalletStatus.ts new file mode 100644 index 00000000..2be504fb --- /dev/null +++ b/workspace/packages/enums/src/WalletStatus.ts @@ -0,0 +1,11 @@ +export enum WalletStatus { + DISCONNECTED = 'disconnected', + CONNECTING = 'connecting', + CONNECTED = 'connected', + ERROR = 'error' +} + +export const isConnected = (status: WalletStatus) => status === WalletStatus.CONNECTED; +export const isDisconnected = (status: WalletStatus) => status === WalletStatus.DISCONNECTED; +export const isConnecting = (status: WalletStatus) => status === WalletStatus.CONNECTING; +export const isError = (status: WalletStatus) => status === WalletStatus.ERROR; diff --git a/workspace/packages/enums/src/index.ts b/workspace/packages/enums/src/index.ts new file mode 100644 index 00000000..4500a862 --- /dev/null +++ b/workspace/packages/enums/src/index.ts @@ -0,0 +1,12 @@ +export * from './ChainType'; +export * from './ChainInfo'; +export * from './EventName'; +export * from './LoginErrorType'; +export * from './NetworkType'; +export * from './SelectorName'; +export * from './TransactionHashPrefix'; +export * from './TransactionStatus'; +export * from './WalletErrorType'; +export * from './WalletStatus'; +export * from './BrowserType'; +export * from './WalletId'; diff --git a/workspace/packages/enums/tsconfig.json b/workspace/packages/enums/tsconfig.json new file mode 100644 index 00000000..6c526268 --- /dev/null +++ b/workspace/packages/enums/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "@starkware-webapps/tsconfig/base.json", + "compilerOptions": { + "outDir": "dist" + }, + "include": ["src"], + "exclude": ["dist", "node_modules"], + "references": [{"path": "./tsconfig.node.json"}] +} diff --git a/workspace/packages/enums/tsconfig.node.json b/workspace/packages/enums/tsconfig.node.json new file mode 100644 index 00000000..2f1c89ad --- /dev/null +++ b/workspace/packages/enums/tsconfig.node.json @@ -0,0 +1,7 @@ +{ + "extends": "@starkware-webapps/tsconfig/node.json", + "compilerOptions": { + "module": "ESNext" + }, + "include": ["vite.config.ts"] +} diff --git a/workspace/packages/enums/typedoc.json b/workspace/packages/enums/typedoc.json new file mode 100644 index 00000000..5c2078b6 --- /dev/null +++ b/workspace/packages/enums/typedoc.json @@ -0,0 +1,5 @@ +{ + "entryPoints": ["./src/index.ts"], + "name": "@starkware-webapps/enums", + "includeVersion": true +} diff --git a/workspace/packages/enums/vite.config.ts b/workspace/packages/enums/vite.config.ts new file mode 100644 index 00000000..ff98fc11 --- /dev/null +++ b/workspace/packages/enums/vite.config.ts @@ -0,0 +1,30 @@ +import {resolve} from 'path'; +import {defineConfig} from 'vite'; +import dts from 'vite-plugin-dts'; + +type ViteConfigInput = { + mode: string; +}; + +export default ({mode}: ViteConfigInput) => { + const prodMode = mode === 'production'; + + return defineConfig({ + plugins: [ + dts({ + insertTypesEntry: true, + outputDir: 'dist/types' + }) + ], + build: { + lib: { + entry: resolve(__dirname, 'src/index.ts'), + name: 'WebAppsEnums', + formats: ['es', 'cjs'], + fileName: 'index' + }, + sourcemap: !prodMode, + copyPublicDir: false + } + }); +}; diff --git a/workspace/packages/http-client/.eslintignore b/workspace/packages/http-client/.eslintignore new file mode 100644 index 00000000..f06235c4 --- /dev/null +++ b/workspace/packages/http-client/.eslintignore @@ -0,0 +1,2 @@ +node_modules +dist diff --git a/workspace/packages/http-client/.eslintrc.cjs b/workspace/packages/http-client/.eslintrc.cjs new file mode 100644 index 00000000..c38eb59d --- /dev/null +++ b/workspace/packages/http-client/.eslintrc.cjs @@ -0,0 +1,4 @@ +module.exports = { + root: true, + extends: ['ts'] +}; diff --git a/workspace/packages/http-client/.gitignore b/workspace/packages/http-client/.gitignore new file mode 100644 index 00000000..f06235c4 --- /dev/null +++ b/workspace/packages/http-client/.gitignore @@ -0,0 +1,2 @@ +node_modules +dist diff --git a/workspace/packages/http-client/.prettierignore b/workspace/packages/http-client/.prettierignore new file mode 100644 index 00000000..9d051717 --- /dev/null +++ b/workspace/packages/http-client/.prettierignore @@ -0,0 +1,4 @@ +node_modules +dist +CHANGELOG.md +.turbo diff --git a/workspace/packages/http-client/package.json b/workspace/packages/http-client/package.json new file mode 100644 index 00000000..d76d843a --- /dev/null +++ b/workspace/packages/http-client/package.json @@ -0,0 +1,38 @@ +{ + "name": "@starkware-webapps/http-client", + "version": "0.0.0", + "private": true, + "type": "module", + "exports": { + ".": { + "require": "./dist/index.cjs", + "import": "./dist/index.js" + } + }, + "types": "./dist/types/index.d.ts", + "files": [ + "dist" + ], + "scripts": { + "prebuild": "pnpm run clean", + "build": "pnpm run prebuild && vite build", + "clean": "rm -rf ./dist", + "dev": "pnpm run prebuild && vite build --watch --mode development", + "format": "sort-package-json && prettier --write \"**/*.+(ts|js|cjs|json|md|html|yml)\"", + "lint": "eslint .", + "lint:fix": "eslint --fix .", + "test": "echo \"No tests found\"" + }, + "dependencies": { + "@starkware-webapps/utils": "workspace:*", + "axios": "^0.26.0" + }, + "devDependencies": { + "@starkware-webapps/tsconfig": "workspace:*", + "eslint": "^8.15.0", + "eslint-config-ts": "workspace:*", + "typescript": "^4.7.3", + "vite": "^4.1.0", + "vite-plugin-dts": "^2.0.1" + } +} diff --git a/workspace/packages/http-client/src/index.ts b/workspace/packages/http-client/src/index.ts new file mode 100644 index 00000000..3c5bc692 --- /dev/null +++ b/workspace/packages/http-client/src/index.ts @@ -0,0 +1,32 @@ +import axios, {AxiosError, AxiosRequestConfig, AxiosResponse} from 'axios'; + +import {mergeDeep} from '@starkware-webapps/utils'; + +const DEFAULT_CONFIG: AxiosRequestConfig = { + headers: { + 'Content-Type': 'application/json' + } +}; + +export const createHttpClient = (config: AxiosRequestConfig = {}) => { + return axios.create(mergeDeep(DEFAULT_CONFIG, config)); +}; + +export const parseHttpClientError = (error: AxiosError) => { + let title = 'Request Error'; + let message = ''; + let code = null; + if (error) { + if (error.response) { + const {statusText, data, status} = error.response; + title = statusText; + message = data.message || data; + code = status; + } else { + ({message} = error); + } + } + return {title, message, code}; +}; + +export type HttpResponse = AxiosResponse; diff --git a/workspace/packages/http-client/tsconfig.json b/workspace/packages/http-client/tsconfig.json new file mode 100644 index 00000000..6c526268 --- /dev/null +++ b/workspace/packages/http-client/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "@starkware-webapps/tsconfig/base.json", + "compilerOptions": { + "outDir": "dist" + }, + "include": ["src"], + "exclude": ["dist", "node_modules"], + "references": [{"path": "./tsconfig.node.json"}] +} diff --git a/workspace/packages/http-client/tsconfig.node.json b/workspace/packages/http-client/tsconfig.node.json new file mode 100644 index 00000000..2f1c89ad --- /dev/null +++ b/workspace/packages/http-client/tsconfig.node.json @@ -0,0 +1,7 @@ +{ + "extends": "@starkware-webapps/tsconfig/node.json", + "compilerOptions": { + "module": "ESNext" + }, + "include": ["vite.config.ts"] +} diff --git a/workspace/packages/http-client/vite.config.ts b/workspace/packages/http-client/vite.config.ts new file mode 100644 index 00000000..b996a61f --- /dev/null +++ b/workspace/packages/http-client/vite.config.ts @@ -0,0 +1,41 @@ +import {createRequire} from 'module'; +import {resolve} from 'path'; +import {defineConfig} from 'vite'; +import dts from 'vite-plugin-dts'; + +const require = createRequire(import.meta.url); +const {peerDependencies, dependencies} = require('./package.json'); + +type ViteConfigInput = { + mode: string; +}; + +export default ({mode}: ViteConfigInput) => { + const prodMode = mode === 'production'; + const external = [...Object.keys(peerDependencies || {}), ...Object.keys(dependencies || {})]; + + return defineConfig({ + plugins: [ + dts({ + insertTypesEntry: true, + outputDir: 'dist/types' + }) + ], + build: { + lib: { + entry: resolve(__dirname, 'src/index.ts'), + name: 'WebAppsHttpClient', + formats: ['es', 'cjs'], + fileName: 'index' + }, + rollupOptions: { + output: { + strict: false + }, + external + }, + sourcemap: !prodMode, + copyPublicDir: false + } + }); +}; diff --git a/workspace/packages/js-logger/.eslintignore b/workspace/packages/js-logger/.eslintignore new file mode 100644 index 00000000..f06235c4 --- /dev/null +++ b/workspace/packages/js-logger/.eslintignore @@ -0,0 +1,2 @@ +node_modules +dist diff --git a/workspace/packages/js-logger/.eslintrc.cjs b/workspace/packages/js-logger/.eslintrc.cjs new file mode 100644 index 00000000..c38eb59d --- /dev/null +++ b/workspace/packages/js-logger/.eslintrc.cjs @@ -0,0 +1,4 @@ +module.exports = { + root: true, + extends: ['ts'] +}; diff --git a/workspace/packages/js-logger/.gitignore b/workspace/packages/js-logger/.gitignore new file mode 100644 index 00000000..f06235c4 --- /dev/null +++ b/workspace/packages/js-logger/.gitignore @@ -0,0 +1,2 @@ +node_modules +dist diff --git a/workspace/packages/js-logger/.prettierignore b/workspace/packages/js-logger/.prettierignore new file mode 100644 index 00000000..9d051717 --- /dev/null +++ b/workspace/packages/js-logger/.prettierignore @@ -0,0 +1,4 @@ +node_modules +dist +CHANGELOG.md +.turbo diff --git a/workspace/packages/js-logger/package.json b/workspace/packages/js-logger/package.json new file mode 100644 index 00000000..11e2b831 --- /dev/null +++ b/workspace/packages/js-logger/package.json @@ -0,0 +1,37 @@ +{ + "name": "@starkware-webapps/js-logger", + "version": "0.0.0", + "private": true, + "type": "module", + "exports": { + ".": { + "require": "./dist/index.cjs", + "import": "./dist/index.js" + } + }, + "types": "./dist/types/index.d.ts", + "files": [ + "dist" + ], + "scripts": { + "prebuild": "pnpm run clean", + "build": "pnpm run prebuild && vite build", + "clean": "rm -rf ./dist", + "dev": "pnpm run prebuild && vite build --watch --mode development", + "format": "sort-package-json && prettier --write \"**/*.+(ts|js|cjs|json|md|html|yml)\"", + "lint": "eslint .", + "lint:fix": "eslint --fix .", + "test": "echo \"No tests found\"" + }, + "dependencies": { + "js-logger": "^1.6.1" + }, + "devDependencies": { + "@starkware-webapps/tsconfig": "workspace:*", + "eslint": "^8.15.0", + "eslint-config-ts": "workspace:*", + "typescript": "^4.7.3", + "vite": "^4.1.0", + "vite-plugin-dts": "^2.0.1" + } +} diff --git a/workspace/packages/js-logger/src/index.ts b/workspace/packages/js-logger/src/index.ts new file mode 100644 index 00000000..2e8ca0df --- /dev/null +++ b/workspace/packages/js-logger/src/index.ts @@ -0,0 +1,28 @@ +import jsLogger, {ILogLevel, ILogger} from 'js-logger'; + +jsLogger.useDefaults({defaultLevel: jsLogger.ERROR}); + +export const LogLevel: {[key: string]: ILogLevel} = { + TRACE: jsLogger.TRACE, + DEBUG: jsLogger.DEBUG, + INFO: jsLogger.INFO, + TIME: jsLogger.TIME, + WARN: jsLogger.WARN, + ERROR: jsLogger.ERROR, + OFF: jsLogger.OFF +}; + +export const getLogger = (name?: string): ILogger => { + if (!name) { + return jsLogger; + } + return jsLogger.get(name); +}; + +export const getLogLevel = (name?: string): ILogLevel => getLogger(name).getLevel(); + +export const setLogLevel = (level: ILogLevel, name?: string) => { + getLogger(name).setLevel(level); +}; + +export type JsLogger = ILogger; diff --git a/workspace/packages/js-logger/tsconfig.json b/workspace/packages/js-logger/tsconfig.json new file mode 100644 index 00000000..6c526268 --- /dev/null +++ b/workspace/packages/js-logger/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "@starkware-webapps/tsconfig/base.json", + "compilerOptions": { + "outDir": "dist" + }, + "include": ["src"], + "exclude": ["dist", "node_modules"], + "references": [{"path": "./tsconfig.node.json"}] +} diff --git a/workspace/packages/js-logger/tsconfig.node.json b/workspace/packages/js-logger/tsconfig.node.json new file mode 100644 index 00000000..2f1c89ad --- /dev/null +++ b/workspace/packages/js-logger/tsconfig.node.json @@ -0,0 +1,7 @@ +{ + "extends": "@starkware-webapps/tsconfig/node.json", + "compilerOptions": { + "module": "ESNext" + }, + "include": ["vite.config.ts"] +} diff --git a/workspace/packages/js-logger/vite.config.ts b/workspace/packages/js-logger/vite.config.ts new file mode 100644 index 00000000..ff30b71f --- /dev/null +++ b/workspace/packages/js-logger/vite.config.ts @@ -0,0 +1,35 @@ +import {resolve} from 'path'; +import {defineConfig} from 'vite'; +import dts from 'vite-plugin-dts'; + +type ViteConfigInput = { + mode: string; +}; + +export default ({mode}: ViteConfigInput) => { + const prodMode = mode === 'production'; + + return defineConfig({ + plugins: [ + dts({ + insertTypesEntry: true, + outputDir: 'dist/types' + }) + ], + build: { + lib: { + entry: resolve(__dirname, 'src/index.ts'), + name: 'WebAppsJsLogger', + formats: ['es', 'cjs'], + fileName: 'index' + }, + rollupOptions: { + output: { + strict: false + } + }, + sourcemap: !prodMode, + copyPublicDir: false + } + }); +}; diff --git a/workspace/packages/ui/.eslintignore b/workspace/packages/ui/.eslintignore new file mode 100644 index 00000000..1ca0441d --- /dev/null +++ b/workspace/packages/ui/.eslintignore @@ -0,0 +1,3 @@ +node_modules +dist +rollup.config.js \ No newline at end of file diff --git a/workspace/packages/ui/.eslintrc.cjs b/workspace/packages/ui/.eslintrc.cjs new file mode 100644 index 00000000..bcc39c84 --- /dev/null +++ b/workspace/packages/ui/.eslintrc.cjs @@ -0,0 +1,4 @@ +module.exports = { + root: true, + extends: ['react-custom'] +}; diff --git a/workspace/packages/ui/.gitignore b/workspace/packages/ui/.gitignore new file mode 100644 index 00000000..a547bf36 --- /dev/null +++ b/workspace/packages/ui/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/workspace/packages/ui/.prettierignore b/workspace/packages/ui/.prettierignore new file mode 100644 index 00000000..9d051717 --- /dev/null +++ b/workspace/packages/ui/.prettierignore @@ -0,0 +1,4 @@ +node_modules +dist +CHANGELOG.md +.turbo diff --git a/workspace/packages/ui/.stylelintignore b/workspace/packages/ui/.stylelintignore new file mode 100644 index 00000000..1521c8b7 --- /dev/null +++ b/workspace/packages/ui/.stylelintignore @@ -0,0 +1 @@ +dist diff --git a/workspace/packages/ui/.stylelintrc.cjs b/workspace/packages/ui/.stylelintrc.cjs new file mode 100644 index 00000000..ef73c2e3 --- /dev/null +++ b/workspace/packages/ui/.stylelintrc.cjs @@ -0,0 +1,86 @@ +module.exports = { + extends: [ + 'stylelint-config-css-modules', + 'stylelint-config-standard', + 'stylelint-config-standard-scss', + 'stylelint-config-prettier' + ], + plugins: ['stylelint-scss', 'stylelint-prettier'], + ignoreFiles: ['**/*.js', '**/*.jsx'], + rules: { + 'property-no-unknown': [ + true, + { + ignoreProperties: ['/^color/', 'scrollWidth', 'mainOffset', 'primaryFont'] + } + ], + 'selector-pseudo-class-no-unknown': [ + true, + { + ignorePseudoClasses: ['export'] + } + ], + 'selector-class-pattern': '^[a-z][a-zA-Z0-9]+$|^Mui*', + 'selector-pseudo-element-no-unknown': [ + true, + { + ignorePseudoElements: ['input-placeholder'] + } + ], + 'alpha-value-notation': 'number', + 'color-function-notation': 'legacy', + 'no-empty-source': null, + 'shorthand-property-no-redundant-values': null, + 'string-quotes': 'single', + 'scss/dollar-variable-pattern': [ + '/^color/', + { + ignore: 'global' + } + ], + 'scss/at-import-partial-extension': null, + 'scss/comment-no-empty': null, + 'scss/double-slash-comment-empty-line-before': null, + 'prettier/prettier': [ + true, + { + severity: 'warning' + } + ], + 'at-rule-empty-line-before': [ + 'always', + { + except: ['first-nested', 'blockless-after-same-name-blockless'], + ignore: ['after-comment'], + ignoreAtRules: ['else'] + } + ], + 'at-rule-no-unknown': [ + true, + { + ignoreAtRules: [ + 'extend', + 'at-root', + 'debug', + 'warn', + 'error', + 'if', + 'else', + 'for', + 'each', + 'while', + 'mixin', + 'include', + 'content', + 'return', + 'function', + 'tailwind', + 'apply', + 'responsive', + 'variants', + 'screen' + ] + } + ] + } +}; diff --git a/workspace/packages/ui/package.json b/workspace/packages/ui/package.json new file mode 100644 index 00000000..d0a9ce43 --- /dev/null +++ b/workspace/packages/ui/package.json @@ -0,0 +1,87 @@ +{ + "name": "@starkware-webapps/ui", + "version": "0.0.0", + "private": true, + "type": "module", + "exports": { + ".": "./dist/index.js", + "./style.css": "./dist/style.css", + "./styles.scss": "./src/styles/index.scss", + "./assets/*": "./src/assets/*", + "./styles/*": "./src/styles/*" + }, + "types": "./dist/types/index.d.ts", + "files": [ + "dist", + "src/assets", + "src/styles" + ], + "scripts": { + "prebuild": "pnpm run clean", + "build": "pnpm run prebuild && vite build", + "clean": "rm -rf ./dist", + "dev": "pnpm run prebuild && vite build --watch --mode development", + "docs:generate": "echo 'No docs'", + "format": "pnpm sort-package-json && pnpm run '/^format:.*/'", + "format:prettier": "prettier --write **/*.{js,cjs,jsx,css,scss,yaml,yml,md}", + "format:scripts": "eslint --fix . --ext .js,.jsx,.ts,.tsx", + "format:styles": "stylelint --fix **/*.{css,scss}", + "lint": "pnpm run '/^lint:.*/'", + "lint:prettier": "prettier --check **/*.{js,cjs,jsx,css,scss}", + "lint:scripts": "eslint . --ext .js,.jsx,.ts,.tsx", + "lint:styles": "stylelint **/*.{css,scss}", + "test": "echo \"No tests found\"" + }, + "dependencies": { + "@starkware-webapps/config": "workspace:*", + "@starkware-webapps/enums": "workspace:*", + "@starkware-webapps/js-logger": "workspace:*", + "@starkware-webapps/utils": "workspace:*", + "@starkware-webapps/utils-browser": "workspace:*" + }, + "devDependencies": { + "@babel/core": "^7.16.0", + "@emotion/react": "^11.8.1", + "@emotion/styled": "^11.8.1", + "@mui/material": "^5.5.0", + "@mui/styles": "^5.5.0", + "@starkware-webapps/tsconfig": "workspace:*", + "@types/react": "^17.0.53", + "@types/react-dom": "^17.0.19", + "@vitejs/plugin-react": "^3.1.0", + "eslint": "^8.15.0", + "eslint-config-react-custom": "workspace:*", + "postcss": "^8.4.21", + "prettier": "^2.8.4", + "prop-types": "^15.8.1", + "react": "^17.0.2", + "react-dom": "^17.0.2", + "sass": "^1.58.3", + "starknet": "^4.9.0", + "stylelint": "^14.1.0", + "stylelint-config-css-modules": "^4.1.0", + "stylelint-config-prettier": "^9.0.3", + "stylelint-config-standard": "^24.0.0", + "stylelint-config-standard-scss": "^3.0.0", + "stylelint-prettier": "^2.0.0", + "stylelint-scss": "^4.0.0", + "typescript": "^4.7.3", + "vite": "^4.1.0", + "vite-plugin-dts": "^1.7.3", + "vite-plugin-svgr": "^2.4.0", + "web3-eth-contract": "^1.8.1", + "web3-utils": "^1.8.1" + }, + "peerDependencies": { + "@emotion/react": "^11.8.1", + "@emotion/styled": "^11.8.1", + "@mui/material": "^5.5.0", + "@mui/styles": "^5.5.0", + "react": "^17.0.2", + "react-dom": "^17.0.2" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=8.0.0" + } +} diff --git a/workspace/packages/ui/src/assets/svg/alert-circle.svg b/workspace/packages/ui/src/assets/svg/alert-circle.svg new file mode 100644 index 00000000..171a9059 --- /dev/null +++ b/workspace/packages/ui/src/assets/svg/alert-circle.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/workspace/packages/ui/src/assets/svg/close.svg b/workspace/packages/ui/src/assets/svg/close.svg new file mode 100644 index 00000000..a4076443 --- /dev/null +++ b/workspace/packages/ui/src/assets/svg/close.svg @@ -0,0 +1,3 @@ + + + diff --git a/workspace/packages/ui/src/assets/svg/collapse.svg b/workspace/packages/ui/src/assets/svg/collapse.svg new file mode 100644 index 00000000..518f6433 --- /dev/null +++ b/workspace/packages/ui/src/assets/svg/collapse.svg @@ -0,0 +1,3 @@ + + + diff --git a/workspace/packages/ui/src/assets/svg/copy.svg b/workspace/packages/ui/src/assets/svg/copy.svg new file mode 100644 index 00000000..c0d543c8 --- /dev/null +++ b/workspace/packages/ui/src/assets/svg/copy.svg @@ -0,0 +1,4 @@ + + + diff --git a/workspace/packages/ui/src/assets/svg/disconnect.svg b/workspace/packages/ui/src/assets/svg/disconnect.svg new file mode 100644 index 00000000..7cdc546c --- /dev/null +++ b/workspace/packages/ui/src/assets/svg/disconnect.svg @@ -0,0 +1,4 @@ + + + diff --git a/workspace/packages/ui/src/assets/svg/discord.svg b/workspace/packages/ui/src/assets/svg/discord.svg new file mode 100644 index 00000000..23afaec0 --- /dev/null +++ b/workspace/packages/ui/src/assets/svg/discord.svg @@ -0,0 +1,3 @@ + + + diff --git a/workspace/packages/ui/src/assets/svg/info.svg b/workspace/packages/ui/src/assets/svg/info.svg new file mode 100644 index 00000000..40d41b39 --- /dev/null +++ b/workspace/packages/ui/src/assets/svg/info.svg @@ -0,0 +1,3 @@ + + + diff --git a/workspace/packages/ui/src/assets/svg/link.svg b/workspace/packages/ui/src/assets/svg/link.svg new file mode 100644 index 00000000..b7e87bdd --- /dev/null +++ b/workspace/packages/ui/src/assets/svg/link.svg @@ -0,0 +1,6 @@ + + + + diff --git a/workspace/packages/ui/src/assets/svg/selected.svg b/workspace/packages/ui/src/assets/svg/selected.svg new file mode 100644 index 00000000..fc9025dd --- /dev/null +++ b/workspace/packages/ui/src/assets/svg/selected.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/img/starkgate.svg b/workspace/packages/ui/src/assets/svg/starkgate.svg similarity index 100% rename from src/assets/img/starkgate.svg rename to workspace/packages/ui/src/assets/svg/starkgate.svg diff --git a/workspace/packages/ui/src/assets/svg/starknet.svg b/workspace/packages/ui/src/assets/svg/starknet.svg new file mode 100644 index 00000000..28b728bc --- /dev/null +++ b/workspace/packages/ui/src/assets/svg/starknet.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/workspace/packages/ui/src/assets/svg/starkware.svg b/workspace/packages/ui/src/assets/svg/starkware.svg new file mode 100644 index 00000000..9438e26e --- /dev/null +++ b/workspace/packages/ui/src/assets/svg/starkware.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/workspace/packages/ui/src/assets/svg/success.svg b/workspace/packages/ui/src/assets/svg/success.svg new file mode 100644 index 00000000..77d95728 --- /dev/null +++ b/workspace/packages/ui/src/assets/svg/success.svg @@ -0,0 +1,3 @@ + + + diff --git a/workspace/packages/ui/src/assets/svg/tokens/DAI.svg b/workspace/packages/ui/src/assets/svg/tokens/DAI.svg new file mode 100644 index 00000000..d75ae9fc --- /dev/null +++ b/workspace/packages/ui/src/assets/svg/tokens/DAI.svg @@ -0,0 +1,10 @@ + + + + + + + + diff --git a/workspace/packages/ui/src/assets/svg/tokens/ETH.svg b/workspace/packages/ui/src/assets/svg/tokens/ETH.svg new file mode 100644 index 00000000..1231284c --- /dev/null +++ b/workspace/packages/ui/src/assets/svg/tokens/ETH.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + diff --git a/workspace/packages/ui/src/assets/svg/tokens/FRAX.svg b/workspace/packages/ui/src/assets/svg/tokens/FRAX.svg new file mode 100644 index 00000000..9f8e2f7b --- /dev/null +++ b/workspace/packages/ui/src/assets/svg/tokens/FRAX.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + diff --git a/workspace/packages/ui/src/assets/svg/tokens/USDC.svg b/workspace/packages/ui/src/assets/svg/tokens/USDC.svg new file mode 100644 index 00000000..5dfea926 --- /dev/null +++ b/workspace/packages/ui/src/assets/svg/tokens/USDC.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/workspace/packages/ui/src/assets/svg/tokens/USDT.svg b/workspace/packages/ui/src/assets/svg/tokens/USDT.svg new file mode 100644 index 00000000..e5308224 --- /dev/null +++ b/workspace/packages/ui/src/assets/svg/tokens/USDT.svg @@ -0,0 +1 @@ +tether-usdt-logo \ No newline at end of file diff --git a/workspace/packages/ui/src/assets/svg/tokens/WBTC.svg b/workspace/packages/ui/src/assets/svg/tokens/WBTC.svg new file mode 100644 index 00000000..676c786b --- /dev/null +++ b/workspace/packages/ui/src/assets/svg/tokens/WBTC.svg @@ -0,0 +1 @@ +wrapped-bitcoin-wbtc \ No newline at end of file diff --git a/workspace/packages/ui/src/assets/svg/tokens/rETH.svg b/workspace/packages/ui/src/assets/svg/tokens/rETH.svg new file mode 100644 index 00000000..77f1e395 --- /dev/null +++ b/workspace/packages/ui/src/assets/svg/tokens/rETH.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/workspace/packages/ui/src/assets/svg/tokens/wstETH.svg b/workspace/packages/ui/src/assets/svg/tokens/wstETH.svg new file mode 100644 index 00000000..1818c8d9 --- /dev/null +++ b/workspace/packages/ui/src/assets/svg/tokens/wstETH.svg @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/workspace/packages/ui/src/assets/svg/warning.svg b/workspace/packages/ui/src/assets/svg/warning.svg new file mode 100644 index 00000000..af3088b3 --- /dev/null +++ b/workspace/packages/ui/src/assets/svg/warning.svg @@ -0,0 +1,3 @@ + + + diff --git a/workspace/packages/ui/src/components/Alert/Alert.jsx b/workspace/packages/ui/src/components/Alert/Alert.jsx new file mode 100644 index 00000000..ec8dbcf3 --- /dev/null +++ b/workspace/packages/ui/src/components/Alert/Alert.jsx @@ -0,0 +1,73 @@ +import PropTypes from 'prop-types'; +import React from 'react'; + +import {ReactComponent as CloseIcon} from '@assets/svg/close.svg'; +import {ReactComponent as InfoIcon} from '@assets/svg/info.svg'; +import {ReactComponent as SuccessIcon} from '@assets/svg/success.svg'; +import {ReactComponent as WarningIcon} from '@assets/svg/warning.svg'; +import {toClasses} from '@starkware-webapps/utils-browser'; + +import styles from './Alert.module.scss'; + +export const AlertType = { + SUCCESS: 'success', + ERROR: 'error', + WARNING: 'warning', + INFO: 'info' +}; + +export const AlertAlign = { + LEFT: 'alignLeft', + CENTER: 'alignCenter', + RIGHT: 'alignRight' +}; + +export const Alert = ({ + title = '', + message = '', + type = AlertType.INFO, + align = AlertAlign.LEFT, + closable = false, + onClose +}) => { + const renderIcon = () => { + switch (type) { + case AlertType.SUCCESS: + return ; + case AlertType.WARNING: + return ; + case AlertType.ERROR: + case AlertType.INFO: + default: + return ; + } + }; + + return ( +

    +
    +
    {renderIcon()}
    +
    + {title &&
    } + {message && ( +
    + )} +
    + {closable && ( +
    + +
    + )} +
    +
    + ); +}; + +Alert.propTypes = { + title: PropTypes.string, + message: PropTypes.string, + type: PropTypes.string, + align: PropTypes.string, + closable: PropTypes.bool, + onClose: PropTypes.func +}; diff --git a/workspace/packages/ui/src/components/Alert/Alert.module.scss b/workspace/packages/ui/src/components/Alert/Alert.module.scss new file mode 100644 index 00000000..5ec73547 --- /dev/null +++ b/workspace/packages/ui/src/components/Alert/Alert.module.scss @@ -0,0 +1,138 @@ +@import '@styles'; + +.alert { + display: flex; + background-color: $--color-white; + border-radius: 7px; + font-size: 14px; + line-height: 20px; + padding: 15px; + + .container { + display: flex; + width: 100%; + + &.alignCenter { + justify-content: center; + } + + &.alignRight { + justify-content: flex-end; + } + + .close { + cursor: pointer; + } + + .icon { + margin-right: 12px; + display: flex; + justify-content: space-around; + } + + .text { + display: flex; + flex-direction: column; + + .title { + font-weight: 500; + } + + .message { + margin-top: 4px; + font-weight: 400; + } + } + } + + &.success { + border: 1px solid $--color-medium-aquamarine; + background: $--color-mint-cream; + + .container { + .text { + .title { + color: $--color-philippine-green; + } + + .message { + color: $--color-spanish-green; + } + } + } + } + + &.error { + border: 1px solid $--color-light-salmon-pink; + background: $--color-snow; + + .container { + .text { + .title { + color: $--color-carnelian; + } + + .message { + color: $--color-vermilion; + } + } + + .icon { + svg { + path { + stroke: $--color-vermilion; + } + } + } + } + } + + &.warning { + border: 1px solid $--color-maize; + background: $--color-milk; + + .container { + .text { + .title { + color: $--color-rust; + } + + .message { + color: $--color-metallic-orange; + } + } + + .icon { + svg { + path { + stroke: $--color-metallic-orange; + } + } + } + } + } + + &.info { + border: 1px solid $--color-cadet-grey; + + .container { + .text { + .title { + color: $--color-charcoal; + } + + .message { + color: $--color-cadet-grey; + } + } + + .icon { + svg { + path { + stroke: $--color-charcoal; + } + } + } + } + } +} diff --git a/workspace/packages/ui/src/components/Button/Button.jsx b/workspace/packages/ui/src/components/Button/Button.jsx new file mode 100644 index 00000000..39b54bcc --- /dev/null +++ b/workspace/packages/ui/src/components/Button/Button.jsx @@ -0,0 +1,76 @@ +import PropTypes from 'prop-types'; +import React, {useState} from 'react'; + +import {toClasses} from '@starkware-webapps/utils-browser'; + +import {Loading, LoadingSize} from '../Loading/Loading'; +import styles from './Button.module.scss'; + +export const Button = ({ + text, + width, + height, + iconLeft, + iconRight, + colorText, + colorTextHover, + colorBackground, + colorBackgroundHover, + colorBorder, + colorBorderHover, + style, + isDisabled, + isLoading, + className, + onClick +}) => { + const [isHover, setIsHover] = useState(false); + const styleObj = { + width, + height, + color: isHover ? colorTextHover || colorText : colorText, + backgroundColor: isHover ? colorBackgroundHover || colorBackground : colorBackground, + borderColor: isHover ? colorBorderHover || colorBorder : colorBorder, + ...style + }; + + return ( + + ); +}; + +Button.propTypes = { + text: PropTypes.string, + width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), + height: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), + colorText: PropTypes.string, + colorTextHover: PropTypes.string, + colorBackground: PropTypes.string, + colorBackgroundHover: PropTypes.string, + colorBorder: PropTypes.string, + colorBorderHover: PropTypes.string, + style: PropTypes.object, + iconLeft: PropTypes.object, + iconRight: PropTypes.object, + isDisabled: PropTypes.bool, + isLoading: PropTypes.bool, + onClick: PropTypes.func, + className: PropTypes.string, + children: PropTypes.oneOfType([PropTypes.array, PropTypes.object]) +}; diff --git a/workspace/packages/ui/src/components/Button/Button.module.scss b/workspace/packages/ui/src/components/Button/Button.module.scss new file mode 100644 index 00000000..2b2efa3a --- /dev/null +++ b/workspace/packages/ui/src/components/Button/Button.module.scss @@ -0,0 +1,51 @@ +@import '@styles'; + +.button { + font-family: $--primary-font; + display: flex; + justify-content: space-evenly; + align-items: center; + text-align: center; + text-transform: capitalize; + font-weight: 500; + font-size: 16px; + line-height: 24px; + border: 1px solid; + box-sizing: border-box; + border-radius: 8px; + margin: 10px 0; + padding: 20px 15px; + cursor: pointer; + transition: 0.3s ease-in-out; + overflow: hidden; + white-space: nowrap; + + .icon { + &.right { + display: flex; + flex-direction: row; + margin-left: 8px; + align-items: center; + + & * { + margin: 0 5px; + } + } + } + + &.isDisabled { + pointer-events: none; + opacity: 0.5; + } + + &.isLoading { + pointer-events: none; + } + + &.hasText { + img, + svg { + margin-right: 8px; + } + } +} diff --git a/workspace/packages/ui/src/components/Checkbox/Checkbox.jsx b/workspace/packages/ui/src/components/Checkbox/Checkbox.jsx new file mode 100644 index 00000000..962e3691 --- /dev/null +++ b/workspace/packages/ui/src/components/Checkbox/Checkbox.jsx @@ -0,0 +1,51 @@ +import PropTypes from 'prop-types'; +import React, {useState} from 'react'; + +import SelectedIcon from '@assets/svg/selected.svg'; +import {toClasses} from '@starkware-webapps/utils-browser'; + +import styles from './Checkbox.module.scss'; + +export const Checkbox = ({ + checked, + width, + height, + backgroundColor, + disabled, + onChange, + ...props +}) => { + const [isChecked, setIsChecked] = useState(!!checked); + const {className, style} = props; + return ( +
    + { + setIsChecked(prevIsCheck => !prevIsCheck); + onChange(event); + }} + /> + {isChecked ? ( +
    + ) : ( + '' + )} +
    + ); +}; + +Checkbox.propTypes = { + checked: PropTypes.bool, + className: PropTypes.string, + disabled: PropTypes.bool, + width: PropTypes.string, + height: PropTypes.string, + backgroundColor: PropTypes.string, + style: PropTypes.object, + onChange: PropTypes.func +}; diff --git a/workspace/packages/ui/src/components/Checkbox/Checkbox.module.scss b/workspace/packages/ui/src/components/Checkbox/Checkbox.module.scss new file mode 100644 index 00000000..bc8bc083 --- /dev/null +++ b/workspace/packages/ui/src/components/Checkbox/Checkbox.module.scss @@ -0,0 +1,32 @@ +@import '@styles'; + +.checkboxWrapper { + position: relative; + pointer-events: none; + + .checkbox { + appearance: none; + border: 1px solid $--color-white; + border-radius: 4px; + margin: 0; + width: 100%; + height: 100%; + pointer-events: auto; + cursor: pointer; + + &.disabled { + pointer-events: none; + opacity: 0.5; + } + } + + .mark { + background-size: 100% 100%; + width: 70%; + height: 70%; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + } +} diff --git a/workspace/packages/ui/src/components/Circle/Circle.jsx b/workspace/packages/ui/src/components/Circle/Circle.jsx new file mode 100644 index 00000000..4e62cebc --- /dev/null +++ b/workspace/packages/ui/src/components/Circle/Circle.jsx @@ -0,0 +1,25 @@ +import PropTypes from 'prop-types'; +import React from 'react'; + +import styles from './Circle.module.scss'; + +export const Circle = ({size, color, style, children}) => ( +
    + {children} +
    +); + +Circle.propTypes = { + size: PropTypes.number, + color: PropTypes.string, + style: PropTypes.object, + children: PropTypes.object +}; diff --git a/workspace/packages/ui/src/components/Circle/Circle.module.scss b/workspace/packages/ui/src/components/Circle/Circle.module.scss new file mode 100644 index 00000000..e861e746 --- /dev/null +++ b/workspace/packages/ui/src/components/Circle/Circle.module.scss @@ -0,0 +1,14 @@ +@import '@styles'; + +.circle { + margin: 0 8px 0 0; + background: linear-gradient(0deg, rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0.2)), + $--color-white; + border-radius: 50%; + display: flex; + + img, + svg { + margin: auto !important; + } +} diff --git a/src/components/UI/CircleLogo/CircleLogo.js b/workspace/packages/ui/src/components/CircleLogo/CircleLogo.jsx similarity index 74% rename from src/components/UI/CircleLogo/CircleLogo.js rename to workspace/packages/ui/src/components/CircleLogo/CircleLogo.jsx index 82adedab..78fc394c 100644 --- a/src/components/UI/CircleLogo/CircleLogo.js +++ b/workspace/packages/ui/src/components/CircleLogo/CircleLogo.jsx @@ -14,19 +14,19 @@ export const CircleLogoSize = { LARGE: 50 }; -export const CircleLogo = ({color, size, path, background = true}) => { - return path ? ( +export const CircleLogo = ({path, color, size, background = true}) => { + return (
    - +
    - ) : null; + ); }; CircleLogo.propTypes = { + path: PropTypes.string, color: PropTypes.string, size: PropTypes.number, - path: PropTypes.string, background: PropTypes.bool }; diff --git a/workspace/packages/ui/src/components/CircleLogo/CircleLogo.module.scss b/workspace/packages/ui/src/components/CircleLogo/CircleLogo.module.scss new file mode 100644 index 00000000..bd000dd2 --- /dev/null +++ b/workspace/packages/ui/src/components/CircleLogo/CircleLogo.module.scss @@ -0,0 +1,9 @@ +.circleLogo { + display: flex; + margin: auto; + height: 100%; + + img { + margin: auto; + } +} diff --git a/workspace/packages/ui/src/components/CollapseExpand/CollapseExpand.jsx b/workspace/packages/ui/src/components/CollapseExpand/CollapseExpand.jsx new file mode 100644 index 00000000..7882d2ab --- /dev/null +++ b/workspace/packages/ui/src/components/CollapseExpand/CollapseExpand.jsx @@ -0,0 +1,20 @@ +import PropTypes from 'prop-types'; +import React from 'react'; + +import {ReactComponent as CollapseExpandIcon} from '@assets/svg/collapse.svg'; +import {toClasses} from '@starkware-webapps/utils-browser'; + +import styles from './CollapseExpand.module.scss'; + +export const CollapseExpand = ({isCollapsed, ...props}) => { + return ( + + ); +}; + +CollapseExpand.propTypes = { + isCollapsed: PropTypes.bool +}; diff --git a/workspace/packages/ui/src/components/CollapseExpand/CollapseExpand.module.scss b/workspace/packages/ui/src/components/CollapseExpand/CollapseExpand.module.scss new file mode 100644 index 00000000..e2e318bb --- /dev/null +++ b/workspace/packages/ui/src/components/CollapseExpand/CollapseExpand.module.scss @@ -0,0 +1,9 @@ +.collapseExpand { + display: flex; + cursor: pointer; + transition: 0.3s ease-in-out; + + &.isCollapsed { + transform: scale(1, -1); + } +} diff --git a/workspace/packages/ui/src/components/DiscordButton/DiscordButton.jsx b/workspace/packages/ui/src/components/DiscordButton/DiscordButton.jsx new file mode 100644 index 00000000..caed8ec0 --- /dev/null +++ b/workspace/packages/ui/src/components/DiscordButton/DiscordButton.jsx @@ -0,0 +1,23 @@ +import PropTypes from 'prop-types'; +import React from 'react'; + +import {ReactComponent as DiscordIcon} from '@assets/svg/discord.svg'; +import {useConstants} from '@hooks'; +import {openInNewTab} from '@starkware-webapps/utils-browser'; + +import {SideButton} from '../SideButton/SideButton'; + +export const DiscordButton = ({onClick = () => ({})}) => { + const {DISCORD_LINK_URL} = useConstants(); + + const onClickInternal = () => { + onClick(); + openInNewTab(DISCORD_LINK_URL); + }; + + return } onClick={onClickInternal} />; +}; + +DiscordButton.propTypes = { + onClick: PropTypes.func +}; diff --git a/src/components/UI/DynamicIcon/DynamicIcon.js b/workspace/packages/ui/src/components/DynamicIcon/DynamicIcon.jsx similarity index 59% rename from src/components/UI/DynamicIcon/DynamicIcon.js rename to workspace/packages/ui/src/components/DynamicIcon/DynamicIcon.jsx index 2ddb07a5..646ab3bd 100644 --- a/src/components/UI/DynamicIcon/DynamicIcon.js +++ b/workspace/packages/ui/src/components/DynamicIcon/DynamicIcon.jsx @@ -1,10 +1,22 @@ -import {useFetchData} from '@starkware-industries/commons-js-hooks'; import PropTypes from 'prop-types'; import React, {useEffect, useRef} from 'react'; +import {useFetchData} from '@hooks'; + export const DynamicIcon = ({path, size}) => { const ImportedIconRef = useRef(null); - const {data, isLoading} = useFetchData(() => import(`../../../assets/svg/${path}`), [path]); + const dataImage = path.startsWith('data:image'); + + const fetchSVG = () => { + if (dataImage) return null; + if (path.includes('/')) { + const paths = path.split('/'); + return import(`../../assets/svg/${paths[0]}/${paths[1]}.svg`); + } + return import(`../../assets/svg/${path}.svg`); + }; + + const {data, isLoading} = useFetchData(fetchSVG, [path]); useEffect(() => { if (data) { @@ -12,7 +24,7 @@ export const DynamicIcon = ({path, size}) => { } }, [data]); - if (path.startsWith('data:image')) { + if (dataImage) { return {''}; } else if (!isLoading && ImportedIconRef.current) { const {current: ImportedIcon} = ImportedIconRef; diff --git a/workspace/packages/ui/src/components/Icon/Icon.jsx b/workspace/packages/ui/src/components/Icon/Icon.jsx new file mode 100644 index 00000000..65b6d131 --- /dev/null +++ b/workspace/packages/ui/src/components/Icon/Icon.jsx @@ -0,0 +1,11 @@ +import PropTypes from 'prop-types'; +import React from 'react'; + +export const Icon = ({path, size}) => { + return ; +}; + +Icon.propTypes = { + path: PropTypes.string, + size: PropTypes.number +}; diff --git a/workspace/packages/ui/src/components/Icon/Icon.module.scss b/workspace/packages/ui/src/components/Icon/Icon.module.scss new file mode 100644 index 00000000..56e5564f --- /dev/null +++ b/workspace/packages/ui/src/components/Icon/Icon.module.scss @@ -0,0 +1,10 @@ +.icon { + position: relative; + left: 50%; + top: 50%; + transform: translate(-50%, -50%); + + .clickable { + cursor: pointer; + } +} diff --git a/workspace/packages/ui/src/components/Image/Image.jsx b/workspace/packages/ui/src/components/Image/Image.jsx new file mode 100644 index 00000000..40ceed39 --- /dev/null +++ b/workspace/packages/ui/src/components/Image/Image.jsx @@ -0,0 +1,16 @@ +import PropTypes from 'prop-types'; +import React from 'react'; + +import {useConstants} from '@hooks'; + +export const Image = ({name, project = 'commons', ...props}) => { + const {S3_ASSETS_BUCKET_URL} = useConstants(); + const path = `${S3_ASSETS_BUCKET_URL}/${project}/img/${name}.png`; + + return ; +}; + +Image.propTypes = { + name: PropTypes.string, + project: PropTypes.string +}; diff --git a/workspace/packages/ui/src/components/LinkButton/LinkButton.jsx b/workspace/packages/ui/src/components/LinkButton/LinkButton.jsx new file mode 100644 index 00000000..3aebe58b --- /dev/null +++ b/workspace/packages/ui/src/components/LinkButton/LinkButton.jsx @@ -0,0 +1,31 @@ +import PropTypes from 'prop-types'; +import React from 'react'; + +import {ReactComponent as LinkIcon} from '@assets/svg/link.svg'; +import {openInNewTab, toClasses} from '@starkware-webapps/utils-browser'; + +import styles from './LinkButton.module.scss'; + +export const LinkButton = ({text, url, isDisabled, onClick}) => { + const onClickInternal = () => { + openInNewTab(url); + onClick(); + }; + + return ( +
    + {text} + +
    + ); +}; + +LinkButton.propTypes = { + text: PropTypes.string, + url: PropTypes.string, + isDisabled: PropTypes.bool, + onClick: PropTypes.func +}; diff --git a/workspace/packages/ui/src/components/LinkButton/LinkButton.module.scss b/workspace/packages/ui/src/components/LinkButton/LinkButton.module.scss new file mode 100644 index 00000000..c16271f7 --- /dev/null +++ b/workspace/packages/ui/src/components/LinkButton/LinkButton.module.scss @@ -0,0 +1,36 @@ +@import '@styles'; + +.linkButton { + color: $--color-dodger-blue; + padding: 0 8px; + line-height: 18px; + font-weight: 400; + border-radius: 5px; + border: 1px solid $--color-dodger-blue; + font-size: 12px; + text-transform: capitalize; + display: inline-block; + cursor: pointer; + + &.isDisabled { + opacity: 0.3; + pointer-events: none; + } + + svg { + margin-left: 5px; + width: 7px; + height: 8px; + } + + &:hover { + color: $--color-very-light-azure; + border-color: $--color-very-light-azure; + + svg { + path { + fill: $--color-very-light-azure; + } + } + } +} diff --git a/workspace/packages/ui/src/components/Loading/Loading.jsx b/workspace/packages/ui/src/components/Loading/Loading.jsx new file mode 100644 index 00000000..51c69bfe --- /dev/null +++ b/workspace/packages/ui/src/components/Loading/Loading.jsx @@ -0,0 +1,32 @@ +import PropTypes from 'prop-types'; +import React from 'react'; + +import {CircularProgress, LinearProgress} from '@mui/material'; + +import {LoadingTheme} from './Loading.theme'; + +export const LoadingType = { + CIRCULAR: 0, + LINEAR: 1 +}; + +export const LoadingSize = { + XS: 13, + SMALL: 25, + MEDIUM: 50, + LARGE: 70, + XL: 110 +}; + +export const Loading = ({size, type = LoadingType.CIRCULAR}) => { + return ( + + {type === LoadingType.LINEAR ? : } + + ); +}; + +Loading.propTypes = { + size: PropTypes.number, + type: PropTypes.number +}; diff --git a/workspace/packages/ui/src/components/Loading/Loading.theme.jsx b/workspace/packages/ui/src/components/Loading/Loading.theme.jsx new file mode 100644 index 00000000..cfd7fe81 --- /dev/null +++ b/workspace/packages/ui/src/components/Loading/Loading.theme.jsx @@ -0,0 +1,38 @@ +import PropTypes from 'prop-types'; +import React from 'react'; + +import {useColors} from '@hooks'; +import {ThemeProvider, alpha, createTheme} from '@mui/material'; + +export const LoadingTheme = ({children}) => { + const {colorOrangeSoda} = useColors(); + + const theme = createTheme({ + components: { + MuiLinearProgress: { + styleOverrides: { + root: { + backgroundColor: alpha(colorOrangeSoda, 0.3), + height: '8px', + borderRadius: '54px' + }, + bar: { + backgroundColor: colorOrangeSoda + } + } + }, + MuiCircularProgress: { + styleOverrides: { + root: { + color: colorOrangeSoda + } + } + } + } + }); + return {children}; +}; + +LoadingTheme.propTypes = { + children: PropTypes.object +}; diff --git a/workspace/packages/ui/src/components/Logo/Logo.jsx b/workspace/packages/ui/src/components/Logo/Logo.jsx new file mode 100644 index 00000000..b4a827a1 --- /dev/null +++ b/workspace/packages/ui/src/components/Logo/Logo.jsx @@ -0,0 +1,12 @@ +import PropTypes from 'prop-types'; +import React from 'react'; + +import styles from './Logo.module.scss'; + +export const Logo = ({logo}) => { + return
    {logo}
    ; +}; + +Logo.propTypes = { + logo: PropTypes.object +}; diff --git a/workspace/packages/ui/src/components/Logo/Logo.module.scss b/workspace/packages/ui/src/components/Logo/Logo.module.scss new file mode 100644 index 00000000..7dbc576c --- /dev/null +++ b/workspace/packages/ui/src/components/Logo/Logo.module.scss @@ -0,0 +1,10 @@ +.logo { + transition: 0.3s ease-in-out; + cursor: pointer; + margin: auto; + + svg { + width: 141px; + height: 28px; + } +} diff --git a/workspace/packages/ui/src/components/Modal/ErrorModal/ErrorModal.jsx b/workspace/packages/ui/src/components/Modal/ErrorModal/ErrorModal.jsx new file mode 100644 index 00000000..45086f65 --- /dev/null +++ b/workspace/packages/ui/src/components/Modal/ErrorModal/ErrorModal.jsx @@ -0,0 +1,12 @@ +import PropTypes from 'prop-types'; +import React from 'react'; + +import styles from './ErrorModal.module.scss'; + +export const ErrorModal = ({text}) => { + return
    {text}
    ; +}; + +ErrorModal.propTypes = { + text: PropTypes.string +}; diff --git a/workspace/packages/ui/src/components/Modal/ErrorModal/ErrorModal.module.scss b/workspace/packages/ui/src/components/Modal/ErrorModal/ErrorModal.module.scss new file mode 100644 index 00000000..ecd826d3 --- /dev/null +++ b/workspace/packages/ui/src/components/Modal/ErrorModal/ErrorModal.module.scss @@ -0,0 +1,10 @@ +@import '@styles'; + +.errorModal { + color: $--color-black; + margin-bottom: 12px; + font-size: 16px; + line-height: 24px; + max-height: 300px; + overflow-y: auto; +} diff --git a/src/components/UI/Modal/Modal/Modal.js b/workspace/packages/ui/src/components/Modal/Modal/Modal.jsx similarity index 95% rename from src/components/UI/Modal/Modal/Modal.js rename to workspace/packages/ui/src/components/Modal/Modal/Modal.jsx index 035ed454..2e425afc 100644 --- a/src/components/UI/Modal/Modal/Modal.js +++ b/workspace/packages/ui/src/components/Modal/Modal/Modal.jsx @@ -1,8 +1,9 @@ -import {toClasses} from '@starkware-industries/commons-js-utils'; import PropTypes from 'prop-types'; import React from 'react'; import {createPortal} from 'react-dom'; +import {toClasses} from '@starkware-webapps/utils-browser'; + import styles from './Modal.module.scss'; export const ModalSize = { diff --git a/workspace/packages/ui/src/components/Modal/Modal/Modal.module.scss b/workspace/packages/ui/src/components/Modal/Modal/Modal.module.scss new file mode 100644 index 00000000..31e882a9 --- /dev/null +++ b/workspace/packages/ui/src/components/Modal/Modal/Modal.module.scss @@ -0,0 +1,35 @@ +@import '@styles'; + +.modal { + background: rgba(52, 64, 84, 0.6); + top: 0; + left: 0; + right: 0; + bottom: 0; + position: absolute; + backdrop-filter: blur(20px); + z-index: 1; + + .container { + top: 50%; + left: 50%; + position: absolute; + transform: translate(-50%, -50%); + background: $--color-white; + box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1); + border-radius: 10px; + padding: 20px 40px; + min-height: 80px; + overflow: auto; + + & > * { + &:not(:first-child) { + margin-top: 8px; + } + } + + &.error { + border: 1px solid $--color-jasper; + } + } +} diff --git a/workspace/packages/ui/src/components/Modal/ModalBody/ModalBody.jsx b/workspace/packages/ui/src/components/Modal/ModalBody/ModalBody.jsx new file mode 100644 index 00000000..388e0b79 --- /dev/null +++ b/workspace/packages/ui/src/components/Modal/ModalBody/ModalBody.jsx @@ -0,0 +1,16 @@ +import PropTypes from 'prop-types'; +import React from 'react'; + +import {toClasses} from '@starkware-webapps/utils-browser'; + +import {ModalType} from '../Modal/Modal'; +import styles from './ModalBody.module.scss'; + +export const ModalBody = ({type = ModalType.INFO, children}) => ( +
    {children}
    +); + +ModalBody.propTypes = { + type: PropTypes.string, + children: PropTypes.oneOfType([PropTypes.object, PropTypes.array]) +}; diff --git a/workspace/packages/ui/src/components/Modal/ModalBody/ModalBody.module.scss b/workspace/packages/ui/src/components/Modal/ModalBody/ModalBody.module.scss new file mode 100644 index 00000000..0cdbc703 --- /dev/null +++ b/workspace/packages/ui/src/components/Modal/ModalBody/ModalBody.module.scss @@ -0,0 +1,27 @@ +@import '@styles'; + +.modalBody { + font-size: 16px; + line-height: 22px; + letter-spacing: 0.03em; + color: $--color-granite-gray; + white-space: break-spaces; + overflow: hidden; + text-overflow: ellipsis; + max-width: inherit; + overflow-wrap: break-word; + + & > * { + &:not(:first-child) { + margin-top: 15px; + } + + &:not(:last-child) { + margin-bottom: 15px; + } + } + + &.error { + color: $--color-jasper; + } +} diff --git a/src/components/UI/Modal/ModalFooter/ModalFooter.js b/workspace/packages/ui/src/components/Modal/ModalFooter/ModalFooter.jsx similarity index 89% rename from src/components/UI/Modal/ModalFooter/ModalFooter.js rename to workspace/packages/ui/src/components/Modal/ModalFooter/ModalFooter.jsx index cd15b4d2..f77301a3 100644 --- a/src/components/UI/Modal/ModalFooter/ModalFooter.js +++ b/workspace/packages/ui/src/components/Modal/ModalFooter/ModalFooter.jsx @@ -1,8 +1,9 @@ -import {toClasses} from '@starkware-industries/commons-js-utils'; import PropTypes from 'prop-types'; import React from 'react'; -import {useColors} from '../../../../hooks'; +import {useColors} from '@hooks'; +import {toClasses} from '@starkware-webapps/utils-browser'; + import {Button} from '../../Button/Button'; import {ModalType} from '../Modal/Modal'; import styles from './ModalFooter.module.scss'; diff --git a/workspace/packages/ui/src/components/Modal/ModalFooter/ModalFooter.module.scss b/workspace/packages/ui/src/components/Modal/ModalFooter/ModalFooter.module.scss new file mode 100644 index 00000000..c8beee19 --- /dev/null +++ b/workspace/packages/ui/src/components/Modal/ModalFooter/ModalFooter.module.scss @@ -0,0 +1,12 @@ +@import '@styles'; + +.modalFooter { + display: flex; + justify-content: space-around; + flex-wrap: wrap; + align-items: center; + + button { + flex: 40%; + } +} diff --git a/workspace/packages/ui/src/components/Modal/ModalHeader/ModalHeader.jsx b/workspace/packages/ui/src/components/Modal/ModalHeader/ModalHeader.jsx new file mode 100644 index 00000000..af391061 --- /dev/null +++ b/workspace/packages/ui/src/components/Modal/ModalHeader/ModalHeader.jsx @@ -0,0 +1,16 @@ +import PropTypes from 'prop-types'; +import React from 'react'; + +import {toClasses} from '@starkware-webapps/utils-browser'; + +import {ModalType} from '../Modal/Modal'; +import styles from './ModalHeader.module.scss'; + +export const ModalHeader = ({type = ModalType.INFO, children}) => { + return
    {children}
    ; +}; + +ModalHeader.propTypes = { + type: PropTypes.string, + children: PropTypes.oneOfType([PropTypes.object, PropTypes.array]) +}; diff --git a/workspace/packages/ui/src/components/Modal/ModalHeader/ModalHeader.module.scss b/workspace/packages/ui/src/components/Modal/ModalHeader/ModalHeader.module.scss new file mode 100644 index 00000000..8d9398c9 --- /dev/null +++ b/workspace/packages/ui/src/components/Modal/ModalHeader/ModalHeader.module.scss @@ -0,0 +1,25 @@ +@import '@styles'; + +.modalHeader { + display: flex; + justify-content: space-between; + align-items: center; + flex-direction: column; + + & > * { + &:not(:last-child) { + margin-bottom: 20px; + } + } + + .container { + svg { + cursor: pointer; + float: right; + } + } + + &.error { + color: $--color-jasper; + } +} diff --git a/workspace/packages/ui/src/components/Modal/ModalHeaderWithIcon/ModalHeaderWithIcon.jsx b/workspace/packages/ui/src/components/Modal/ModalHeaderWithIcon/ModalHeaderWithIcon.jsx new file mode 100644 index 00000000..06b7d7a7 --- /dev/null +++ b/workspace/packages/ui/src/components/Modal/ModalHeaderWithIcon/ModalHeaderWithIcon.jsx @@ -0,0 +1,20 @@ +import PropTypes from 'prop-types'; +import React from 'react'; + +import styles from './ModalHeaderWithIcon.module.scss'; + +export const ModalHeaderWithIcon = ({title, subtitle, icon: Icon}) => { + return ( +
    + +
    {title}
    + {subtitle &&
    {subtitle}
    } +
    + ); +}; + +ModalHeaderWithIcon.propTypes = { + title: PropTypes.string, + subtitle: PropTypes.string, + icon: PropTypes.func +}; diff --git a/workspace/packages/ui/src/components/Modal/ModalHeaderWithIcon/ModalHeaderWithIcon.module.scss b/workspace/packages/ui/src/components/Modal/ModalHeaderWithIcon/ModalHeaderWithIcon.module.scss new file mode 100644 index 00000000..5903633b --- /dev/null +++ b/workspace/packages/ui/src/components/Modal/ModalHeaderWithIcon/ModalHeaderWithIcon.module.scss @@ -0,0 +1,22 @@ +@import '@styles'; + +.container { + width: 100%; + margin-bottom: 12px; + + .modalHeaderWithIcon { + font-weight: 500; + font-size: 24px; + line-height: 32px; + margin: 20px 0 -10px 0; + color: $--color-dark-jungle-green; + width: 100%; + } + + .subtitle { + margin-top: 16px; + color: $--color-auro-metal-saurus; + font-size: 14px; + line-height: 20px; + } +} diff --git a/workspace/packages/ui/src/components/Modal/ModalText/ModalText.jsx b/workspace/packages/ui/src/components/Modal/ModalText/ModalText.jsx new file mode 100644 index 00000000..d435bb32 --- /dev/null +++ b/workspace/packages/ui/src/components/Modal/ModalText/ModalText.jsx @@ -0,0 +1,18 @@ +import PropTypes from 'prop-types'; + +import styles from './ModalText.module.scss'; + +export const ModalText = ({style, children}) => { + return ( +
    +
    +
    {children}
    +
    +
    + ); +}; + +ModalText.propTypes = { + style: PropTypes.object, + children: PropTypes.oneOfType([PropTypes.string, PropTypes.array, PropTypes.object]) +}; diff --git a/workspace/packages/ui/src/components/Modal/ModalText/ModalText.module.scss b/workspace/packages/ui/src/components/Modal/ModalText/ModalText.module.scss new file mode 100644 index 00000000..876bfdcf --- /dev/null +++ b/workspace/packages/ui/src/components/Modal/ModalText/ModalText.module.scss @@ -0,0 +1,24 @@ +@import '@styles'; + +.modalText { + font-size: 12px; + font-weight: 500; + line-height: 16px; + letter-spacing: 0.03em; + max-width: inherit; + text-align: center; + + .wrap { + float: left; + position: relative; + left: 50%; + max-width: inherit; + + .content { + float: left; + position: relative; + left: -50%; + max-width: inherit; + } + } +} diff --git a/workspace/packages/ui/src/components/Modal/ModalTitle/ModalTitle.jsx b/workspace/packages/ui/src/components/Modal/ModalTitle/ModalTitle.jsx new file mode 100644 index 00000000..80e9499d --- /dev/null +++ b/workspace/packages/ui/src/components/Modal/ModalTitle/ModalTitle.jsx @@ -0,0 +1,10 @@ +import PropTypes from 'prop-types'; +import React from 'react'; + +import styles from './ModalTitle.module.scss'; + +export const ModalTitle = ({children}) =>
    {children}
    ; + +ModalTitle.propTypes = { + children: PropTypes.oneOfType([PropTypes.object, PropTypes.array, PropTypes.string]) +}; diff --git a/workspace/packages/ui/src/components/Modal/ModalTitle/ModalTitle.module.scss b/workspace/packages/ui/src/components/Modal/ModalTitle/ModalTitle.module.scss new file mode 100644 index 00000000..46077e26 --- /dev/null +++ b/workspace/packages/ui/src/components/Modal/ModalTitle/ModalTitle.module.scss @@ -0,0 +1,10 @@ +@import '@styles'; + +.modalTitle { + font-size: 24px; + line-height: 32px; + letter-spacing: 0.01em; + font-weight: 600; + display: flex; + align-items: center; +} diff --git a/workspace/packages/ui/src/components/Modal/ModalWrapper.jsx b/workspace/packages/ui/src/components/Modal/ModalWrapper.jsx new file mode 100644 index 00000000..22a62c58 --- /dev/null +++ b/workspace/packages/ui/src/components/Modal/ModalWrapper.jsx @@ -0,0 +1,84 @@ +import React, {Suspense} from 'react'; + +import {useHideModal, useModal} from '@providers'; + +import {DynamicIcon} from '../DynamicIcon/DynamicIcon'; +import {Loading, LoadingSize} from '../Loading/Loading'; +import {Modal} from './Modal/Modal'; +import {ModalBody} from './ModalBody/ModalBody'; +import {ModalFooter} from './ModalFooter/ModalFooter'; +import {ModalHeader} from './ModalHeader/ModalHeader'; +import {ModalText} from './ModalText/ModalText'; +import {ModalTitle} from './ModalTitle/ModalTitle'; + +export const ModalWrapper = () => { + const modal = useModal(); + const hideModal = useHideModal(); + + const {withHeader, header, body, footer} = modal; + + const handleOnClose = () => { + footer.onClick && footer.onClick(); + hideModal(); + }; + + const getComponents = components => { + return components + ? components.map(({component, props}) => ({ + component, + props + })) + : []; + }; + + const renderComponents = (components, fallbackComponent) => { + return components.length > 0 + ? components.map((c, i) => ) + : fallbackComponent; + }; + + const renderLoading = () => { + return ( +
    + +
    + ); + }; + + const headerComponents = getComponents(header.components); + const bodyComponents = getComponents(body.components); + const footerComponents = getComponents(footer.components); + + return ( + + {withHeader && ( + + {renderComponents(headerComponents)} + {header.title && ( + + {header.icon && } + {header.title} + + )} + + )} + + + {renderComponents(bodyComponents, {body.text})} + + + {footer.withButtons && ( + + {renderComponents(footerComponents)} + + )} + + ); +}; diff --git a/workspace/packages/ui/src/components/Modal/index.jsx b/workspace/packages/ui/src/components/Modal/index.jsx new file mode 100644 index 00000000..f69bc00d --- /dev/null +++ b/workspace/packages/ui/src/components/Modal/index.jsx @@ -0,0 +1,7 @@ +export * from './ModalWrapper'; +export * from './Modal/Modal'; +export * from './ModalText/ModalText'; +export * from './ModalHeader/ModalHeader'; +export * from './ModalBody/ModalBody'; +export * from './ModalTitle/ModalTitle'; +export * from './ModalFooter/ModalFooter'; diff --git a/workspace/packages/ui/src/components/SideButton/SideButton.jsx b/workspace/packages/ui/src/components/SideButton/SideButton.jsx new file mode 100644 index 00000000..32ebf5f1 --- /dev/null +++ b/workspace/packages/ui/src/components/SideButton/SideButton.jsx @@ -0,0 +1,17 @@ +import PropTypes from 'prop-types'; +import React from 'react'; + +import styles from './SideButton.module.scss'; + +export const SideButton = ({icon, onClick}) => { + return ( +
    + {icon} +
    + ); +}; + +SideButton.propTypes = { + icon: PropTypes.object, + onClick: PropTypes.func +}; diff --git a/workspace/packages/ui/src/components/SideButton/SideButton.module.scss b/workspace/packages/ui/src/components/SideButton/SideButton.module.scss new file mode 100644 index 00000000..fb7c46f2 --- /dev/null +++ b/workspace/packages/ui/src/components/SideButton/SideButton.module.scss @@ -0,0 +1,16 @@ +@import '@styles'; + +.sideButton { + position: absolute; + top: 50%; + right: 0; + transform: translateY(-50%); + background: $--color-orange-soda; + padding: 16px 8px; + border-radius: 8px 0 0 8px; + display: flex; + align-items: center; + justify-content: center; + cursor: pointer; + transition: 0.3s ease-in-out; +} diff --git a/workspace/packages/ui/src/components/Stepper/Stepper.jsx b/workspace/packages/ui/src/components/Stepper/Stepper.jsx new file mode 100644 index 00000000..01a0bdf7 --- /dev/null +++ b/workspace/packages/ui/src/components/Stepper/Stepper.jsx @@ -0,0 +1,28 @@ +import PropTypes from 'prop-types'; +import React from 'react'; + +import {Stepper as MuiStepper, Step, StepLabel} from '@mui/material'; + +import styles from './Stepper.module.scss'; +import {StepperTheme} from './Stepper.theme'; + +export const Stepper = ({steps, activeStep}) => { + return ( + +
    + + {steps.map((label, index) => ( + + {label} + + ))} + +
    +
    + ); +}; + +Stepper.propTypes = { + steps: PropTypes.arrayOf(PropTypes.string), + activeStep: PropTypes.number +}; diff --git a/workspace/packages/ui/src/components/Stepper/Stepper.module.scss b/workspace/packages/ui/src/components/Stepper/Stepper.module.scss new file mode 100644 index 00000000..1ba139e9 --- /dev/null +++ b/workspace/packages/ui/src/components/Stepper/Stepper.module.scss @@ -0,0 +1,3 @@ +.stepper { + width: 100%; +} diff --git a/workspace/packages/ui/src/components/Stepper/Stepper.theme.jsx b/workspace/packages/ui/src/components/Stepper/Stepper.theme.jsx new file mode 100644 index 00000000..fe75f44c --- /dev/null +++ b/workspace/packages/ui/src/components/Stepper/Stepper.theme.jsx @@ -0,0 +1,54 @@ +import PropTypes from 'prop-types'; +import React from 'react'; + +import {useColors} from '@hooks'; +import {ThemeProvider, createTheme} from '@mui/material'; + +export const StepperTheme = ({children}) => { + const {colorGainsboro1, colorSpaceCadet, colorLightSteelBlue} = useColors(); + + const theme = createTheme({ + components: { + MuiStep: { + styleOverrides: { + root: { + '.MuiSvgIcon-root': { + color: colorLightSteelBlue, + fontSize: '32px', + '&.Mui-completed, &.Mui-active': { + color: colorSpaceCadet + } + } + } + } + }, + MuiStepConnector: { + styleOverrides: { + root: { + top: '15px' + }, + line: { + borderColor: colorGainsboro1, + width: '80%', + margin: 'auto' + } + } + }, + MuiStepLabel: { + styleOverrides: { + label: { + '&.MuiStepLabel-alternativeLabel': { + marginTop: '8px', + fontWeight: '900' + } + } + } + } + } + }); + return {children}; +}; + +StepperTheme.propTypes = { + children: PropTypes.object +}; diff --git a/workspace/packages/ui/src/components/StyledBackground/StyledBackground.jsx b/workspace/packages/ui/src/components/StyledBackground/StyledBackground.jsx new file mode 100644 index 00000000..cae53a70 --- /dev/null +++ b/workspace/packages/ui/src/components/StyledBackground/StyledBackground.jsx @@ -0,0 +1,23 @@ +import PropTypes from 'prop-types'; +import React from 'react'; + +import {Image} from '../Image/Image'; +import styles from './StyledBackground.module.scss'; + +export const StyledBackground = ({images, children}) => { + const renderImages = () => { + return images.map(image => ); + }; + + return ( +
    + {renderImages()} + {children} +
    + ); +}; + +StyledBackground.propTypes = { + images: PropTypes.array, + children: PropTypes.oneOfType([PropTypes.object, PropTypes.array]) +}; diff --git a/workspace/packages/ui/src/components/StyledBackground/StyledBackground.module.scss b/workspace/packages/ui/src/components/StyledBackground/StyledBackground.module.scss new file mode 100644 index 00000000..a2f157ae --- /dev/null +++ b/workspace/packages/ui/src/components/StyledBackground/StyledBackground.module.scss @@ -0,0 +1,14 @@ +@import '@styles'; + +.styledBackground { + .image { + position: absolute; + top: #{$--header-height}px; + bottom: #{$--header-height}px; + left: 0; + width: 100%; + height: calc(100% - #{$--header-height}px); + object-fit: cover; + filter: brightness(1.2); + } +} diff --git a/workspace/packages/ui/src/components/TextField/TextField.jsx b/workspace/packages/ui/src/components/TextField/TextField.jsx new file mode 100644 index 00000000..52b68e2c --- /dev/null +++ b/workspace/packages/ui/src/components/TextField/TextField.jsx @@ -0,0 +1,28 @@ +import PropTypes from 'prop-types'; +import React from 'react'; + +import {TextField as MuiTextField} from '@mui/material'; + +import {TextFieldTheme} from './TextField.theme'; + +export const TextField = props => { + const {error, helperText} = props; + + return ( + + + + ); +}; + +TextField.propTypes = { + error: PropTypes.bool, + helperText: PropTypes.string +}; diff --git a/workspace/packages/ui/src/components/TextField/TextField.theme.jsx b/workspace/packages/ui/src/components/TextField/TextField.theme.jsx new file mode 100644 index 00000000..1cb76820 --- /dev/null +++ b/workspace/packages/ui/src/components/TextField/TextField.theme.jsx @@ -0,0 +1,78 @@ +import PropTypes from 'prop-types'; +import React from 'react'; + +import {useColors} from '@hooks'; +import {ThemeProvider, createTheme} from '@mui/material'; +import {hexToRgba} from '@starkware-webapps/utils-browser'; + +export const TextFieldTheme = ({error, children}) => { + const {colorGainsboro, colorOrangeSoda, colorIndigo, colorUbe, colorWhite} = useColors(); + + const theme = createTheme({ + components: { + MuiInputLabel: { + styleOverrides: { + root: { + '&.Mui-disabled': { + color: colorWhite + } + } + } + }, + MuiTextField: { + styleOverrides: { + root: { + width: '100%' + } + } + }, + MuiFormLabel: { + styleOverrides: { + root: { + color: colorGainsboro, + fontSize: '16px', + fontWeight: 600, + lineHeight: '20px', + '&.Mui-focused': { + color: colorGainsboro + } + } + } + }, + MuiInputBase: { + styleOverrides: { + root: { + marginTop: '18px' + }, + input: { + background: colorIndigo, + color: colorWhite, + padding: '10px 12px', + borderRadius: '8px', + fontSize: 18, + fontWeight: 500, + height: '28px', + lineHeight: '28px', + '&.Mui-disabled': { + color: hexToRgba(colorWhite, '0.3'), + '-webkit-text-fill-color': 'inherit' + } + } + } + }, + MuiFormHelperText: { + styleOverrides: { + root: { + color: () => (error ? colorOrangeSoda : colorUbe) + } + } + } + } + }); + return {children}; +}; + +TextFieldTheme.propTypes = { + error: PropTypes.bool, + children: PropTypes.object +}; diff --git a/workspace/packages/ui/src/components/Tooltip/Tooltip.jsx b/workspace/packages/ui/src/components/Tooltip/Tooltip.jsx new file mode 100644 index 00000000..bcafbac1 --- /dev/null +++ b/workspace/packages/ui/src/components/Tooltip/Tooltip.jsx @@ -0,0 +1,20 @@ +import PropTypes from 'prop-types'; +import React from 'react'; + +import {Tooltip as MuiTooltip} from '@mui/material'; + +import {TooltipTheme} from './Tooltip.theme'; + +export const Tooltip = ({title, color, children}) => { + return ( + + {children} + + ); +}; + +Tooltip.propTypes = { + title: PropTypes.string, + color: PropTypes.string, + children: PropTypes.oneOfType([PropTypes.array, PropTypes.object]) +}; diff --git a/workspace/packages/ui/src/components/Tooltip/Tooltip.theme.jsx b/workspace/packages/ui/src/components/Tooltip/Tooltip.theme.jsx new file mode 100644 index 00000000..59a67dd1 --- /dev/null +++ b/workspace/packages/ui/src/components/Tooltip/Tooltip.theme.jsx @@ -0,0 +1,33 @@ +import PropTypes from 'prop-types'; +import React from 'react'; + +import {useFonts} from '@hooks'; +import {ThemeProvider, createTheme} from '@mui/material'; + +export const TooltipTheme = ({color, children}) => { + const {primaryFont} = useFonts(); + + const theme = createTheme({ + components: { + MuiTooltip: { + styleOverrides: { + tooltip: { + backgroundColor: 'transparent', + fontSize: '10px', + fontFamily: primaryFont, + color + }, + tooltipPlacementBottom: { + marginTop: '-2px !important' + } + } + } + } + }); + return {children}; +}; + +TooltipTheme.propTypes = { + color: PropTypes.string, + children: PropTypes.object +}; diff --git a/workspace/packages/ui/src/components/TransactionLog/TransactionLogContainer/TransactionLogContainer.jsx b/workspace/packages/ui/src/components/TransactionLog/TransactionLogContainer/TransactionLogContainer.jsx new file mode 100644 index 00000000..dfa8ce16 --- /dev/null +++ b/workspace/packages/ui/src/components/TransactionLog/TransactionLogContainer/TransactionLogContainer.jsx @@ -0,0 +1,62 @@ +import PropTypes from 'prop-types'; +import React, {useState} from 'react'; + +import {useTranslation} from '@hooks'; + +import {CollapseExpand} from '../../CollapseExpand/CollapseExpand'; +import styles from './TransactionLogContainer.module.scss'; + +export const TransactionLogContainer = ({children, height, onExpand = () => ({})}) => { + const { + TITLE_TXT, + SINGLE_OVERVIEW_TXT, + OVERVIEW_TXT, + EMPTY_MSG_TXT, + VIEW_MORE_TXT, + VIEW_LESS_TXT + } = useTranslation('TransactionLogContainer'); + + const [showChildren, setShowChildren] = useState(false); + + const toggleShowChildren = () => { + const show = !showChildren; + setShowChildren(show); + show && onExpand(); + }; + + const renderChildren = () => { + if (!children || (Array.isArray(children) && !children.length)) { + return
    {EMPTY_MSG_TXT}
    ; + } + + return ( +
    + {showChildren && ( +
    +
    {children}
    +
    + )} + {children.length > 1 ? `${children.length} ${OVERVIEW_TXT}` : `1 ${SINGLE_OVERVIEW_TXT}`}{' '} + {showChildren ? VIEW_LESS_TXT : VIEW_MORE_TXT} +
    + ); + }; + + return ( +
    +
    + {TITLE_TXT} + {children.length > 0 && ( + + )} +
    + {renderChildren()} +
    + ); +}; + +TransactionLogContainer.propTypes = { + children: PropTypes.oneOfType([PropTypes.array, PropTypes.object]), + height: PropTypes.string, + onExpand: PropTypes.func +}; diff --git a/workspace/packages/ui/src/components/TransactionLog/TransactionLogContainer/TransactionLogContainer.module.scss b/workspace/packages/ui/src/components/TransactionLog/TransactionLogContainer/TransactionLogContainer.module.scss new file mode 100644 index 00000000..aa681c40 --- /dev/null +++ b/workspace/packages/ui/src/components/TransactionLog/TransactionLogContainer/TransactionLogContainer.module.scss @@ -0,0 +1,49 @@ +@import '@styles'; + +.transactionLogContainer { + color: $--color-white; + border-radius: 8px; + border: 1px solid $--color-indigo; + + .title { + display: flex; + justify-content: space-between; + align-items: center; + padding: 15px 8px; + gap: 8px; + font-size: 14px; + line-height: 20px; + font-weight: 600; + border-bottom: 1px solid $--color-indigo; + border-radius: 15px 15px 0 0; + } + + .empty { + color: $--color-gainsboro; + font-size: 12px; + font-weight: 400; + line-height: 15px; + opacity: 0.3; + padding: 15px 8px; + gap: 8px; + } + + .viewMore { + font-size: 12px; + font-weight: 500; + line-height: 16px; + overflow-y: auto; + padding: 15px 8px; + gap: 8px; + + span { + cursor: pointer; + text-transform: capitalize; + color: $--color-dodger-blue; + } + } + + .overflow { + overflow-y: auto; + } +} diff --git a/workspace/packages/ui/src/components/TransactionLog/TransactionLogItem/TransactionLogItem.jsx b/workspace/packages/ui/src/components/TransactionLog/TransactionLogItem/TransactionLogItem.jsx new file mode 100644 index 00000000..9479ae00 --- /dev/null +++ b/workspace/packages/ui/src/components/TransactionLog/TransactionLogItem/TransactionLogItem.jsx @@ -0,0 +1,72 @@ +import PropTypes from 'prop-types'; +import React from 'react'; + +import {useConstants} from '@hooks'; +import { + NetworkType, + TransactionStatus, + TransactionStatusFriendlyMessage, + TransactionStatusStep, + isOnChain, + isRejected +} from '@starkware-webapps/enums'; +import {evaluate, getFullTime, shortenBalance} from '@starkware-webapps/utils'; +import {toClasses} from '@starkware-webapps/utils-browser'; + +import {CircleLogo, CircleLogoSize} from '../../CircleLogo/CircleLogo'; +import {LinkButton} from '../../LinkButton/LinkButton'; +import styles from './TransactionLogItem.module.scss'; + +export const TransactionLogItem = ({transaction, onTransactionClick}) => { + const {STARKSCAN_TX_URL} = useConstants(); + const {symbol, timestamp, name, amount, status, transactionHash} = transaction; + + const renderTransactionStatus = () => { + return !isOnChain(status) ? ( +
    + {TransactionStatusFriendlyMessage[status || TransactionStatus.NOT_RECEIVED]} +
    + ) : null; + }; + + const renderL2TxButton = () => { + return ( + + ); + }; + + return ( + <> +
    +
    + +
    +
    {name}
    +
    {`${getFullTime(timestamp)}`}
    +
    +
    +
    +
    + {shortenBalance(amount)} {symbol} +
    + {renderTransactionStatus()} +
    {renderL2TxButton()}
    +
    +
    + + ); +}; + +TransactionLogItem.propTypes = { + transaction: PropTypes.object, + onTransactionClick: PropTypes.func +}; diff --git a/src/components/Features/TransferLog/TransferLog.module.scss b/workspace/packages/ui/src/components/TransactionLog/TransactionLogItem/TransactionLogItem.module.scss similarity index 85% rename from src/components/Features/TransferLog/TransferLog.module.scss rename to workspace/packages/ui/src/components/TransactionLog/TransactionLogItem/TransactionLogItem.module.scss index a476eeb2..9b9240b7 100644 --- a/src/components/Features/TransferLog/TransferLog.module.scss +++ b/workspace/packages/ui/src/components/TransactionLog/TransactionLogItem/TransactionLogItem.module.scss @@ -1,6 +1,6 @@ -@import '../../../index'; +@import '@styles'; -.transferLog { +.transactionLogItem { display: flex; flex-direction: row; justify-content: space-between; @@ -22,10 +22,6 @@ justify-content: space-around; align-items: center; margin: 4px 0; - - & div { - margin-left: 8px; - } } } @@ -33,11 +29,14 @@ font-size: 14px; font-weight: 700; line-height: 20px; + white-space: nowrap; } .data { color: $--color-toolbox; height: 16px; + overflow: hidden; + white-space: nowrap; &.error { color: $--color-jasper; diff --git a/workspace/packages/ui/src/components/TransactionLog/index.jsx b/workspace/packages/ui/src/components/TransactionLog/index.jsx new file mode 100644 index 00000000..a39997b9 --- /dev/null +++ b/workspace/packages/ui/src/components/TransactionLog/index.jsx @@ -0,0 +1,2 @@ +export * from './TransactionLogItem/TransactionLogItem'; +export * from './TransactionLogContainer/TransactionLogContainer'; diff --git a/workspace/packages/ui/src/components/WalletButton/AccountWalletButton/AccountWalletButton.jsx b/workspace/packages/ui/src/components/WalletButton/AccountWalletButton/AccountWalletButton.jsx new file mode 100644 index 00000000..2c8bc992 --- /dev/null +++ b/workspace/packages/ui/src/components/WalletButton/AccountWalletButton/AccountWalletButton.jsx @@ -0,0 +1,66 @@ +import PropTypes from 'prop-types'; +import React, {useState} from 'react'; + +import {useColors, useTranslation} from '@hooks'; +import {evaluate, mergeDeep, shortenAddress} from '@starkware-webapps/utils'; + +import {Button} from '../../Button/Button'; +import {CollapseExpand} from '../../CollapseExpand/CollapseExpand'; +import {DynamicIcon} from '../../DynamicIcon/DynamicIcon'; +import {ChainLabel} from '../ChainLabel/ChainLabel'; +import {WalletMenu} from '../WalletMenu/WalletMenu'; +import styles from './AccountWalletButton.module.scss'; + +export const WalletButtonIconSize = { + SMALL: 10, + MEDIUM: 20, + LARGE: 30 +}; + +export const AccountWalletButton = ({account, chain, logoPath, menuOptions, texts, onClick}) => { + const {colorOrangeSoda, colorWhiteOp10, colorWhite, colorDarkBlueGray} = useColors(); + const {ACCOUNT_TXT} = mergeDeep(useTranslation('WalletButton'), texts); + const [isMenuOpen, setIsMenuOpen] = useState(false); + + const onButtonClick = () => { + setIsMenuOpen(!isMenuOpen); + onClick(); + }; + + return ( + <> +
    + } + iconRight={ + <> + + {menuOptions.enable && } + + } + text={evaluate(ACCOUNT_TXT, {address: shortenAddress(account)})} + onClick={onButtonClick} + /> + {menuOptions.enable && ( + + )} + + ); +}; + +AccountWalletButton.propTypes = { + account: PropTypes.string, + chain: PropTypes.string, + logoPath: PropTypes.string, + menuOptions: PropTypes.object, + texts: PropTypes.object, + onClick: PropTypes.func +}; diff --git a/workspace/packages/ui/src/components/WalletButton/AccountWalletButton/AccountWalletButton.module.scss b/workspace/packages/ui/src/components/WalletButton/AccountWalletButton/AccountWalletButton.module.scss new file mode 100644 index 00000000..d18b4e08 --- /dev/null +++ b/workspace/packages/ui/src/components/WalletButton/AccountWalletButton/AccountWalletButton.module.scss @@ -0,0 +1,10 @@ +@import '@styles'; + +.accountWalletButton { + border-width: 1px; + font-weight: 500; + font-size: 12px; + line-height: 17px; + padding: 10px 5px 10px 7px; + position: relative; +} diff --git a/workspace/packages/ui/src/components/WalletButton/ChainLabel/ChainLabel.jsx b/workspace/packages/ui/src/components/WalletButton/ChainLabel/ChainLabel.jsx new file mode 100644 index 00000000..494e010f --- /dev/null +++ b/workspace/packages/ui/src/components/WalletButton/ChainLabel/ChainLabel.jsx @@ -0,0 +1,12 @@ +import PropTypes from 'prop-types'; +import React from 'react'; + +import styles from './ChainLabel.module.scss'; + +export const ChainLabel = ({chain}) => { + return
    {chain}
    ; +}; + +ChainLabel.propTypes = { + chain: PropTypes.string +}; diff --git a/workspace/packages/ui/src/components/WalletButton/ChainLabel/ChainLabel.module.scss b/workspace/packages/ui/src/components/WalletButton/ChainLabel/ChainLabel.module.scss new file mode 100644 index 00000000..d4eb5a31 --- /dev/null +++ b/workspace/packages/ui/src/components/WalletButton/ChainLabel/ChainLabel.module.scss @@ -0,0 +1,19 @@ +@import '@styles'; + +.chainLabel { + display: flex; + flex-direction: row; + align-items: flex-start; + padding: 4px 7px; + background: $--color-indigo; + border: 1px solid $--color-light-steel-blue; + border-radius: 4px; + font-weight: 600; + font-size: 10px; + line-height: 1; + letter-spacing: 0.01em; + + @media only screen and (max-width: $--breakpoint-mobile) { + display: none; + } +} diff --git a/workspace/packages/ui/src/components/WalletButton/ConnectWalletButton/ConnectWalletButton.jsx b/workspace/packages/ui/src/components/WalletButton/ConnectWalletButton/ConnectWalletButton.jsx new file mode 100644 index 00000000..4bad0f70 --- /dev/null +++ b/workspace/packages/ui/src/components/WalletButton/ConnectWalletButton/ConnectWalletButton.jsx @@ -0,0 +1,33 @@ +import PropTypes from 'prop-types'; +import React from 'react'; + +import {useColors, useTranslation} from '@hooks'; +import {WalletStatus} from '@starkware-webapps/enums'; +import {evaluate} from '@starkware-webapps/utils'; +import {toClasses} from '@starkware-webapps/utils-browser'; + +import {Button} from '../../Button/Button'; +import styles from './ConnectWalletButton.module.scss'; + +export const ConnectWalletButton = ({network, status, texts, onClick}) => { + const {colorOrangeSoda, colorFlame, colorWhite} = useColors(); + const {CONNECT_TXT, CONNECTING_TXT} = useTranslation('WalletButton', texts); + + return ( +