From 75eadc4335524be7c14e73ed32783a6274bccdf1 Mon Sep 17 00:00:00 2001 From: Atris Date: Thu, 22 Jun 2023 19:48:40 +0200 Subject: [PATCH] feat: matching estimate prototype --- packages/grant-explorer/package.json | 4 +- .../features/common/MatchingEstimations.tsx | 102 ++++ .../src/features/round/ViewProjectDetails.tsx | 9 + packages/grant-explorer/tsconfig.json | 2 +- pnpm-lock.yaml | 487 ++++++++++++------ 5 files changed, 433 insertions(+), 171 deletions(-) create mode 100644 packages/grant-explorer/src/features/common/MatchingEstimations.tsx diff --git a/packages/grant-explorer/package.json b/packages/grant-explorer/package.json index fe00f67dbb..e745135494 100644 --- a/packages/grant-explorer/package.json +++ b/packages/grant-explorer/package.json @@ -77,6 +77,7 @@ "msw": "^0.47.4", "node-fetch": "^3.3.1", "os-browserify": "^0.3.0", + "pluralistic": "github:gitcoinco/pluralistic.js", "process": "^0.11.10", "react": "^18.1.0", "react-datetime": "^3.1.1", @@ -93,9 +94,10 @@ "stream-browserify": "^3.0.0", "stream-http": "^3.2.0", "swr": "^2.0.0", - "typescript": "^4.6.0", + "typescript": "^5.1.3", "url": "^0.11.0", "util": "^0.12.4", + "viem": "^1.1.4", "wagmi": "0.6.8", "web-vitals": "^2.1.0", "webpack": ">=2" diff --git a/packages/grant-explorer/src/features/common/MatchingEstimations.tsx b/packages/grant-explorer/src/features/common/MatchingEstimations.tsx new file mode 100644 index 0000000000..1efef524b8 --- /dev/null +++ b/packages/grant-explorer/src/features/common/MatchingEstimations.tsx @@ -0,0 +1,102 @@ +import { useMemo } from "react"; +import { Client } from "allo-indexer-client"; +import { useWallet } from "./Auth"; +import { Contribution, linearQF } from "pluralistic"; +import useSWR from "swr"; +import { Round } from "allo-indexer-client"; +import { useAccount, useNetwork } from "wagmi"; +import { getAddress, Hex, zeroAddress } from "viem"; + +export function useAlloIndexerClient(): Client { + const { chain } = useNetwork(); + + return useMemo(() => { + return new Client( + fetch.bind(window), + process.env.REACT_APP_ALLO_API_URL ?? "", + chain?.id ?? 1 + ); + }, [chain?.id]); +} + +export function useProjectContributions(roundId: string, projectId: string) { + const client = useAlloIndexerClient(); + return useSWR([roundId, "/applications"], ([roundId]) => { + return client.getVotes(roundId); + }); +} + +export function useRound(roundId: string) { + const client = useAlloIndexerClient(); + return useSWR([roundId, "/stats"], ([roundId]) => { + return client.getRoundBy("id", roundId); + }); +} + +/** + * Pseudocode + * - get matching amount without user contribution + * for each donation amount: + * - get amount after user contribution by running linearQF with the added vote + * - deduct match amount w/o user contribution to get new matching + * - return new matching + * */ +export function MatchingEstimations({ + roundId, + projectId, + recipient, +}: { + projectId: string; + roundId: string; + recipient: string; +}) { + const { address } = useAccount(); + const { data: round } = useRound(getAddress(roundId)); + const { data: votes } = useProjectContributions( + getAddress(roundId), + projectId + ); + + if (!round || !votes) { + return null; + } + const rawContributions: Contribution[] = (votes ?? []).map((vote) => ({ + amount: BigInt(Math.round(vote.amountUSD)), + recipient: vote.grantAddress, + contributor: vote.voter, + })); + + const amountMatchedBeforeUserContribution = linearQF( + rawContributions, + BigInt(Math.round(round?.matchAmountUSD) ?? 0), + BigInt(18) + // TODO: fetch additional options for round + ); + + const matchingBeforeUserContribution = + amountMatchedBeforeUserContribution[recipient]?.matched; + + const matchingPredictions = [0, 1, 10, 100, 1000] + .map((donationAmount) => { + const contributions: Contribution[] = [ + ...rawContributions, + { + amount: BigInt(Math.round(donationAmount)), + contributor: address ?? zeroAddress, + recipient: recipient, + }, + ]; + const amountMatchedAfterUserContribution = linearQF( + contributions, + BigInt(Math.round(round?.matchAmountUSD) ?? 0), + BigInt(18) + // TODO: fetch additional options for round + )[recipient]?.matched; + + return ( + amountMatchedAfterUserContribution - matchingBeforeUserContribution + ); + }) + .map((bigint) => Number(bigint)); + return
{JSON.stringify(matchingPredictions)}
; +} diff --git a/packages/grant-explorer/src/features/round/ViewProjectDetails.tsx b/packages/grant-explorer/src/features/round/ViewProjectDetails.tsx index 5b66b25d65..8485c4eea3 100644 --- a/packages/grant-explorer/src/features/round/ViewProjectDetails.tsx +++ b/packages/grant-explorer/src/features/round/ViewProjectDetails.tsx @@ -32,6 +32,8 @@ import PassportBanner from "../common/PassportBanner"; import { ProjectBanner } from "../common/ProjectBanner"; import RoundEndedBanner from "../common/RoundEndedBanner"; import Breadcrumb, { BreadcrumbItem } from "../common/Breadcrumb"; +import { linearQF } from "pluralistic"; +import { MatchingEstimations } from "../common/MatchingEstimations"; const CalendarIcon = (props: React.SVGProps) => { return ( @@ -547,6 +549,13 @@ export function ProjectStats() { "rounded bg-gray-50 mb-4 p-4 gap-4 grid grid-cols-3 md:flex md:flex-col" } > + {projectToRender && ( + + )}

${application?.amountUSD.toFixed(2) ?? "-"}

funding received in current round

diff --git a/packages/grant-explorer/tsconfig.json b/packages/grant-explorer/tsconfig.json index 9d379a3c4a..8df538917b 100644 --- a/packages/grant-explorer/tsconfig.json +++ b/packages/grant-explorer/tsconfig.json @@ -1,6 +1,6 @@ { "compilerOptions": { - "target": "es5", + "target": "es2020", "lib": ["dom", "dom.iterable", "esnext"], "allowJs": true, "skipLibCheck": true, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 83931158ea..5ccd1b92cd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -329,6 +329,7 @@ importers: msw: ^0.47.4 node-fetch: ^3.3.1 os-browserify: ^0.3.0 + pluralistic: github:gitcoinco/pluralistic.js postcss: ^8.4.14 prettier: ^2.8.3 process: ^0.11.10 @@ -349,14 +350,15 @@ importers: swr: ^2.0.0 tailwind-styled-components: ^2.1.7 tailwindcss: ^3.0.24 - typescript: ^4.6.0 + typescript: ^5.1.3 url: ^0.11.0 util: ^0.12.4 + viem: ^1.1.4 wagmi: 0.6.8 web-vitals: ^2.1.0 webpack: '>=2' dependencies: - '@craco/craco': 7.0.0_iihpyunhlvq2lijfgduptyp3ja + '@craco/craco': 7.0.0_sekoxjijglg2vlny6wd2ocnaim '@datadog/browser-logs': 4.30.1_7nwqccnzuve4t7hwidkd2in2be '@datadog/browser-rum': 4.30.1_25ad6ujv2hpt3baw5lupcax7q4 '@ethersproject/abstract-signer': 5.7.0 @@ -395,9 +397,10 @@ importers: ipfs-core-types: 0.14.0 jest-fetch-mock: 3.0.3 moment: 2.29.4 - msw: 0.47.4_typescript@4.9.4 + msw: 0.47.4_typescript@5.1.3 node-fetch: 3.3.1 os-browserify: 0.3.0 + pluralistic: github.com/gitcoinco/pluralistic.js/b193c5cd7f089ff17a813b062aebc5df5e715241 process: 0.11.10 react: 18.2.0 react-datetime: 3.2.0_moment@2.29.4+react@18.2.0 @@ -407,16 +410,17 @@ importers: react-redux: 8.0.5_r7hvvldj6g2s5chfsdsflfq664 react-router: 6.7.0_react@18.2.0 react-router-dom: 6.7.0_biqbaboplfbrettd7655fr4n2y - react-scripts: 5.0.1_nxhyxwde3eoe75duibejr53p3m + react-scripts: 5.0.1_76nepyrl5hy47g5kyu4rnyveva react-tooltip: 4.5.1_biqbaboplfbrettd7655fr4n2y redux: 4.2.1 redux-thunk: 2.4.2_redux@4.2.1 stream-browserify: 3.0.0 stream-http: 3.2.0 swr: 2.0.1_react@18.2.0 - typescript: 4.9.4 + typescript: 5.1.3 url: 0.11.0 util: 0.12.5 + viem: 1.1.4_typescript@5.1.3 wagmi: 0.6.8_2zvkf7ysi4hsi53ibmhvnxyxrq web-vitals: 2.1.4 webpack: 5.75.0 @@ -621,6 +625,10 @@ packages: resolution: {integrity: sha512-+u76oB43nOHrF4DDWRLWDCtci7f3QJoEBigemIdIeTi1ODqjx6Tad9NCVnPRwewWlKkVab5PlK8DCtPTyX7S8g==} dev: false + /@adraffy/ens-normalize/1.9.0: + resolution: {integrity: sha512-iowxq3U30sghZotgl4s/oJRci6WPBfNO5YYgk2cIOMCHr3LeGPcsZjCEr+33Q4N+oV3OABDAtA+pyvWjbvBifQ==} + dev: false + /@ampproject/remapping/2.2.0: resolution: {integrity: sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==} engines: {node: '>=6.0.0'} @@ -3139,15 +3147,15 @@ packages: '@commitlint/execute-rule': 17.4.0 '@commitlint/resolve-extends': 17.4.4 '@commitlint/types': 17.4.4 - '@types/node': 20.2.4 + '@types/node': 17.0.45 chalk: 4.1.2 cosmiconfig: 8.1.3 - cosmiconfig-typescript-loader: 4.3.0_ugny246yc6icgnsdsbppppispu + cosmiconfig-typescript-loader: 4.3.0_ub4nl566p56thhqioxgvptkkdm lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 lodash.uniq: 4.5.0 resolve-from: 5.0.0 - ts-node: 10.9.1_3vrzguiji56yf2visveuztkowq + ts-node: 10.9.1_cin3sed6ohfsopbmt6orxeb4o4 typescript: 4.9.5 transitivePeerDependencies: - '@swc/core' @@ -3262,7 +3270,7 @@ packages: - '@types/node' - typescript - /@craco/craco/7.0.0_iihpyunhlvq2lijfgduptyp3ja: + /@craco/craco/7.0.0_sekoxjijglg2vlny6wd2ocnaim: resolution: {integrity: sha512-OyjL9zpURB6Ha1HO62Hlt27Xd7UYJ8DRiBNuE4DBB8Ue0iQ9q/xsv3ze7ROm6gCZqV6I2Gxjnq0EHCCye+4xDQ==} engines: {node: '>=6'} hasBin: true @@ -3271,10 +3279,10 @@ packages: dependencies: autoprefixer: 10.4.13_postcss@8.4.21 cosmiconfig: 7.1.0 - cosmiconfig-typescript-loader: 1.0.9_zpb5kzpnyozdjq4cwaojlul57u + cosmiconfig-typescript-loader: 1.0.9_52o3fzwfk432ygqn6zfy4glpsm cross-spawn: 7.0.3 lodash: 4.17.21 - react-scripts: 5.0.1_nxhyxwde3eoe75duibejr53p3m + react-scripts: 5.0.1_76nepyrl5hy47g5kyu4rnyveva semver: 7.3.8 webpack-merge: 5.8.0 transitivePeerDependencies: @@ -4587,7 +4595,7 @@ packages: engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: '@jest/types': 27.5.1 - '@types/node': 18.15.5 + '@types/node': 17.0.45 chalk: 4.1.2 jest-message-util: 27.5.1 jest-util: 27.5.1 @@ -4598,7 +4606,7 @@ packages: engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} dependencies: '@jest/types': 28.1.3 - '@types/node': 18.15.5 + '@types/node': 17.0.45 chalk: 4.1.2 jest-message-util: 28.1.3 jest-util: 28.1.3 @@ -4618,7 +4626,7 @@ packages: '@jest/test-result': 27.5.1 '@jest/transform': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 18.15.5 + '@types/node': 17.0.45 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.8.1 @@ -4654,7 +4662,7 @@ packages: dependencies: '@jest/fake-timers': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 18.15.5 + '@types/node': 17.0.45 jest-mock: 27.5.1 /@jest/expect-utils/29.5.0: @@ -4669,7 +4677,7 @@ packages: dependencies: '@jest/types': 27.5.1 '@sinonjs/fake-timers': 8.1.0 - '@types/node': 18.15.5 + '@types/node': 17.0.45 jest-message-util: 27.5.1 jest-mock: 27.5.1 jest-util: 27.5.1 @@ -4696,7 +4704,7 @@ packages: '@jest/test-result': 27.5.1 '@jest/transform': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 18.15.5 + '@types/node': 17.0.45 chalk: 4.1.2 collect-v8-coverage: 1.0.1 exit: 0.1.2 @@ -4828,7 +4836,7 @@ packages: dependencies: '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 18.15.5 + '@types/node': 17.0.45 '@types/yargs': 16.0.5 chalk: 4.1.2 @@ -4839,7 +4847,7 @@ packages: '@jest/schemas': 28.1.3 '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 18.15.5 + '@types/node': 17.0.45 '@types/yargs': 17.0.19 chalk: 4.1.2 @@ -4850,7 +4858,7 @@ packages: '@jest/schemas': 29.4.3 '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 18.15.5 + '@types/node': 17.0.45 '@types/yargs': 17.0.19 chalk: 4.1.2 @@ -5159,6 +5167,12 @@ packages: dependencies: eslint-scope: 5.1.1 + /@noble/curves/1.0.0: + resolution: {integrity: sha512-2upgEu0iLiDVDZkNLeFV2+ht0BAVgQnEmCk6JsOch9Rp8xfkMCbvbAZlA2pBHQc73dbl+vFOXfqkf4uemdn0bw==} + dependencies: + '@noble/hashes': 1.3.0 + dev: false + /@noble/ed25519/1.7.1: resolution: {integrity: sha512-Rk4SkJFaXZiznFyC/t77Q0NKS4FL7TLJJsVG2V2oiEq3kJVeTdxysEe/yRWSpnWMe808XRDJ+VFh5pt/FN5plw==} dev: false @@ -5167,6 +5181,10 @@ packages: resolution: {integrity: sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ==} dev: false + /@noble/hashes/1.3.0: + resolution: {integrity: sha512-ilHEACi9DwqJB0pw7kv+Apvh50jiiSyR/cQ3y4W7lOR5mhvn/50FLUfsnfJz0BDZtl/RR16kXvptiv6q1msYZg==} + dev: false + /@noble/secp256k1/1.7.1: resolution: {integrity: sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==} dev: false @@ -5428,6 +5446,14 @@ packages: '@scure/base': 1.1.1 dev: false + /@scure/bip32/1.3.0: + resolution: {integrity: sha512-bcKpo1oj54hGholplGLpqPHRbIsnbixFtc06nwuNM5/dwSXOq/AAYoIBRsBmnZJSdfeNW5rnff7NTAz3ZCqR9Q==} + dependencies: + '@noble/curves': 1.0.0 + '@noble/hashes': 1.3.0 + '@scure/base': 1.1.1 + dev: false + /@scure/bip39/1.1.1: resolution: {integrity: sha512-t+wDck2rVkh65Hmv280fYdVdY25J9YeEUIgn2LG1WM6gxFkGzcksoDiUkWVpVp3Oex9xGC68JU2dSbUfwZ2jPg==} dependencies: @@ -5435,6 +5461,13 @@ packages: '@scure/base': 1.1.1 dev: false + /@scure/bip39/1.2.0: + resolution: {integrity: sha512-SX/uKq52cuxm4YFXWFaVByaSHJh2w3BnokVSeUJVCv6K7WulT9u2BuNRBhuFl8vAuYnzx9bEu9WgpcNYTrYieg==} + dependencies: + '@noble/hashes': 1.3.0 + '@scure/base': 1.1.1 + dev: false + /@sentry/browser/7.31.1: resolution: {integrity: sha512-Rg9F61S1tz1Dv3iUyyGP26bxoi7WJAG2+f2fBbSmFuJ+JTH4Jvu2/F1bBig8Dz01ejzVhbNSUUCfoDhSvksIsQ==} engines: {node: '>=8'} @@ -5573,7 +5606,7 @@ packages: dependencies: '@babel/runtime': 7.21.0 '@noble/ed25519': 1.7.1 - '@noble/hashes': 1.2.0 + '@noble/hashes': 1.3.0 '@noble/secp256k1': 1.7.1 '@solana/buffer-layout': 4.0.1 agentkeepalive: 4.2.1 @@ -6007,30 +6040,30 @@ packages: /@types/bn.js/4.11.6: resolution: {integrity: sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==} dependencies: - '@types/node': 18.15.5 + '@types/node': 17.0.45 dev: false /@types/body-parser/1.19.2: resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==} dependencies: '@types/connect': 3.4.35 - '@types/node': 18.15.5 + '@types/node': 17.0.45 /@types/bonjour/3.5.10: resolution: {integrity: sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==} dependencies: - '@types/node': 18.15.5 + '@types/node': 17.0.45 /@types/connect-history-api-fallback/1.3.5: resolution: {integrity: sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==} dependencies: '@types/express-serve-static-core': 4.17.32 - '@types/node': 18.15.5 + '@types/node': 17.0.45 /@types/connect/3.4.35: resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==} dependencies: - '@types/node': 18.15.5 + '@types/node': 17.0.45 /@types/cookie/0.4.1: resolution: {integrity: sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==} @@ -6074,7 +6107,7 @@ packages: /@types/express-serve-static-core/4.17.32: resolution: {integrity: sha512-aI5h/VOkxOF2Z1saPy0Zsxs5avets/iaiAJYznQFm5By/pamU31xWKL//epiF4OfUA2qTOc9PV6tCUjhO8wlZA==} dependencies: - '@types/node': 18.15.5 + '@types/node': 17.0.45 '@types/qs': 6.9.7 '@types/range-parser': 1.2.4 @@ -6089,7 +6122,7 @@ packages: /@types/graceful-fs/4.1.6: resolution: {integrity: sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==} dependencies: - '@types/node': 18.15.5 + '@types/node': 17.0.45 /@types/hoist-non-react-statics/3.3.1: resolution: {integrity: sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==} @@ -6104,7 +6137,7 @@ packages: /@types/http-proxy/1.17.9: resolution: {integrity: sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw==} dependencies: - '@types/node': 18.15.5 + '@types/node': 17.0.45 /@types/istanbul-lib-coverage/2.0.4: resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==} @@ -6202,10 +6235,6 @@ packages: /@types/node/18.15.5: resolution: {integrity: sha512-Ark2WDjjZO7GmvsyFFf81MXuGTA/d6oP38anyxWOL6EREyBKAxKoFHwBhaZxCfLRLpO8JgVXwqOwSwa7jRcjew==} - /@types/node/20.2.4: - resolution: {integrity: sha512-ni5f8Xlf4PwnT/Z3f0HURc3ZSw8UyrqMqmM3L5ysa7VjHu8c3FOmIo1nKCcLrV/OAmtf3N4kFna/aJqxsfEtnA==} - dev: true - /@types/normalize-package-data/2.4.1: resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} dev: true @@ -6216,7 +6245,7 @@ packages: /@types/pbkdf2/3.1.0: resolution: {integrity: sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==} dependencies: - '@types/node': 18.15.5 + '@types/node': 17.0.45 dev: false /@types/prettier/2.7.2: @@ -6275,7 +6304,7 @@ packages: /@types/resolve/1.17.1: resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==} dependencies: - '@types/node': 18.15.5 + '@types/node': 17.0.45 /@types/retry/0.12.0: resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} @@ -6286,7 +6315,7 @@ packages: /@types/secp256k1/4.0.3: resolution: {integrity: sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==} dependencies: - '@types/node': 18.15.5 + '@types/node': 17.0.45 dev: false /@types/semver/7.3.13: @@ -6301,17 +6330,17 @@ packages: resolution: {integrity: sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==} dependencies: '@types/mime': 3.0.1 - '@types/node': 18.15.5 + '@types/node': 17.0.45 /@types/set-cookie-parser/2.4.2: resolution: {integrity: sha512-fBZgytwhYAUkj/jC/FAV4RQ5EerRup1YQsXQCh8rZfiHkc4UahC192oH0smGwsXol3cL3A5oETuAHeQHmhXM4w==} dependencies: - '@types/node': 18.15.5 + '@types/node': 17.0.45 /@types/sockjs/0.3.33: resolution: {integrity: sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==} dependencies: - '@types/node': 18.15.5 + '@types/node': 17.0.45 /@types/stack-utils/2.0.1: resolution: {integrity: sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==} @@ -6331,13 +6360,13 @@ packages: /@types/ws/7.4.7: resolution: {integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==} dependencies: - '@types/node': 18.15.5 + '@types/node': 17.0.45 dev: false /@types/ws/8.5.4: resolution: {integrity: sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==} dependencies: - '@types/node': 18.15.5 + '@types/node': 17.0.45 /@types/yargs-parser/21.0.0: resolution: {integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==} @@ -6409,7 +6438,7 @@ packages: transitivePeerDependencies: - supports-color - /@typescript-eslint/eslint-plugin/5.48.2_caon6io6stgpr7lz2rtbhekxqy: + /@typescript-eslint/eslint-plugin/5.48.2_eqvwjfxmulubckj424ok5c2fbq: resolution: {integrity: sha512-sR0Gja9Ky1teIq4qJOl0nC+Tk64/uYdX+mi+5iB//MH8gwyx8e3SOyhEzeLZEFEEfCaLf8KJq+Bd/6je1t+CAg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -6420,18 +6449,18 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/parser': 5.48.2_7uibuqfxkfaozanbtbziikiqje + '@typescript-eslint/parser': 5.48.2_uop6ct72k657fenbdl4ercalve '@typescript-eslint/scope-manager': 5.48.2 - '@typescript-eslint/type-utils': 5.48.2_7uibuqfxkfaozanbtbziikiqje - '@typescript-eslint/utils': 5.48.2_7uibuqfxkfaozanbtbziikiqje + '@typescript-eslint/type-utils': 5.48.2_uop6ct72k657fenbdl4ercalve + '@typescript-eslint/utils': 5.48.2_uop6ct72k657fenbdl4ercalve debug: 4.3.4 eslint: 8.32.0 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.4 - typescript: 4.9.4 + tsutils: 3.21.0_typescript@5.1.3 + typescript: 5.1.3 transitivePeerDependencies: - supports-color dev: false @@ -6461,19 +6490,6 @@ packages: transitivePeerDependencies: - supports-color - /@typescript-eslint/experimental-utils/5.48.2_7uibuqfxkfaozanbtbziikiqje: - resolution: {integrity: sha512-Iwx8De8dwl6qPaPZWIaEfP1feN/YFlA5FlCxF3zUIm+2AG92C5Tefkugj2L9ytOFrmTYkTE/CqvJFZbYoVZQMg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - '@typescript-eslint/utils': 5.48.2_7uibuqfxkfaozanbtbziikiqje - eslint: 8.32.0 - transitivePeerDependencies: - - supports-color - - typescript - dev: false - /@typescript-eslint/experimental-utils/5.48.2_et5x32uxl7z5ldub3ye5rhlyqm: resolution: {integrity: sha512-Iwx8De8dwl6qPaPZWIaEfP1feN/YFlA5FlCxF3zUIm+2AG92C5Tefkugj2L9ytOFrmTYkTE/CqvJFZbYoVZQMg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -6498,24 +6514,17 @@ packages: - supports-color - typescript - /@typescript-eslint/parser/5.48.2_7uibuqfxkfaozanbtbziikiqje: - resolution: {integrity: sha512-38zMsKsG2sIuM5Oi/olurGwYJXzmtdsHhn5mI/pQogP+BjYVkK5iRazCQ8RGS0V+YLk282uWElN70zAAUmaYHw==} + /@typescript-eslint/experimental-utils/5.48.2_uop6ct72k657fenbdl4ercalve: + resolution: {integrity: sha512-Iwx8De8dwl6qPaPZWIaEfP1feN/YFlA5FlCxF3zUIm+2AG92C5Tefkugj2L9ytOFrmTYkTE/CqvJFZbYoVZQMg==} 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.48.2 - '@typescript-eslint/types': 5.48.2 - '@typescript-eslint/typescript-estree': 5.48.2_typescript@4.9.4 - debug: 4.3.4 + '@typescript-eslint/utils': 5.48.2_uop6ct72k657fenbdl4ercalve eslint: 8.32.0 - typescript: 4.9.4 transitivePeerDependencies: - supports-color + - typescript dev: false /@typescript-eslint/parser/5.48.2_eslint@8.32.0: @@ -6574,32 +6583,31 @@ packages: transitivePeerDependencies: - supports-color - /@typescript-eslint/scope-manager/5.48.2: - resolution: {integrity: sha512-zEUFfonQid5KRDKoI3O+uP1GnrFd4tIHlvs+sTJXiWuypUWMuDaottkJuR612wQfOkjYbsaskSIURV9xo4f+Fw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - '@typescript-eslint/types': 5.48.2 - '@typescript-eslint/visitor-keys': 5.48.2 - - /@typescript-eslint/type-utils/5.48.2_7uibuqfxkfaozanbtbziikiqje: - resolution: {integrity: sha512-QVWx7J5sPMRiOMJp5dYshPxABRoZV1xbRirqSk8yuIIsu0nvMTZesKErEA3Oix1k+uvsk8Cs8TGJ6kQ0ndAcew==} + /@typescript-eslint/parser/5.48.2_uop6ct72k657fenbdl4ercalve: + resolution: {integrity: sha512-38zMsKsG2sIuM5Oi/olurGwYJXzmtdsHhn5mI/pQogP+BjYVkK5iRazCQ8RGS0V+YLk282uWElN70zAAUmaYHw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - eslint: '*' + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 5.48.2_typescript@4.9.4 - '@typescript-eslint/utils': 5.48.2_7uibuqfxkfaozanbtbziikiqje + '@typescript-eslint/scope-manager': 5.48.2 + '@typescript-eslint/types': 5.48.2 + '@typescript-eslint/typescript-estree': 5.48.2_typescript@5.1.3 debug: 4.3.4 eslint: 8.32.0 - tsutils: 3.21.0_typescript@4.9.4 - typescript: 4.9.4 + typescript: 5.1.3 transitivePeerDependencies: - supports-color - dev: false + + /@typescript-eslint/scope-manager/5.48.2: + resolution: {integrity: sha512-zEUFfonQid5KRDKoI3O+uP1GnrFd4tIHlvs+sTJXiWuypUWMuDaottkJuR612wQfOkjYbsaskSIURV9xo4f+Fw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.48.2 + '@typescript-eslint/visitor-keys': 5.48.2 /@typescript-eslint/type-utils/5.48.2_eslint@8.32.0: resolution: {integrity: sha512-QVWx7J5sPMRiOMJp5dYshPxABRoZV1xbRirqSk8yuIIsu0nvMTZesKErEA3Oix1k+uvsk8Cs8TGJ6kQ0ndAcew==} @@ -6657,6 +6665,26 @@ packages: transitivePeerDependencies: - supports-color + /@typescript-eslint/type-utils/5.48.2_uop6ct72k657fenbdl4ercalve: + resolution: {integrity: sha512-QVWx7J5sPMRiOMJp5dYshPxABRoZV1xbRirqSk8yuIIsu0nvMTZesKErEA3Oix1k+uvsk8Cs8TGJ6kQ0ndAcew==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '*' + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/typescript-estree': 5.48.2_typescript@5.1.3 + '@typescript-eslint/utils': 5.48.2_uop6ct72k657fenbdl4ercalve + debug: 4.3.4 + eslint: 8.32.0 + tsutils: 3.21.0_typescript@5.1.3 + typescript: 5.1.3 + transitivePeerDependencies: + - supports-color + dev: false + /@typescript-eslint/types/5.48.2: resolution: {integrity: sha512-hE7dA77xxu7ByBc6KCzikgfRyBCTst6dZQpwaTy25iMYOnbNljDT4hjhrGEJJ0QoMjrfqrx+j1l1B9/LtKeuqA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -6721,25 +6749,25 @@ packages: transitivePeerDependencies: - supports-color - /@typescript-eslint/utils/5.48.2_7uibuqfxkfaozanbtbziikiqje: - resolution: {integrity: sha512-2h18c0d7jgkw6tdKTlNaM7wyopbLRBiit8oAxoP89YnuBOzCZ8g8aBCaCqq7h208qUTroL7Whgzam7UY3HVLow==} + /@typescript-eslint/typescript-estree/5.48.2_typescript@5.1.3: + resolution: {integrity: sha512-bibvD3z6ilnoVxUBFEgkO0k0aFvUc4Cttt0dAreEr+nrAHhWzkO83PEVVuieK3DqcgL6VAK5dkzK8XUVja5Zcg==} 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: - '@types/json-schema': 7.0.11 - '@types/semver': 7.3.13 - '@typescript-eslint/scope-manager': 5.48.2 '@typescript-eslint/types': 5.48.2 - '@typescript-eslint/typescript-estree': 5.48.2_typescript@4.9.4 - eslint: 8.32.0 - eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@8.32.0 + '@typescript-eslint/visitor-keys': 5.48.2 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 semver: 7.3.8 + tsutils: 3.21.0_typescript@5.1.3 + typescript: 5.1.3 transitivePeerDependencies: - supports-color - - typescript - dev: false /@typescript-eslint/utils/5.48.2_eslint@8.32.0: resolution: {integrity: sha512-2h18c0d7jgkw6tdKTlNaM7wyopbLRBiit8oAxoP89YnuBOzCZ8g8aBCaCqq7h208qUTroL7Whgzam7UY3HVLow==} @@ -6798,6 +6826,26 @@ packages: - supports-color - typescript + /@typescript-eslint/utils/5.48.2_uop6ct72k657fenbdl4ercalve: + resolution: {integrity: sha512-2h18c0d7jgkw6tdKTlNaM7wyopbLRBiit8oAxoP89YnuBOzCZ8g8aBCaCqq7h208qUTroL7Whgzam7UY3HVLow==} + 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.48.2 + '@typescript-eslint/types': 5.48.2 + '@typescript-eslint/typescript-estree': 5.48.2_typescript@5.1.3 + eslint: 8.32.0 + eslint-scope: 5.1.1 + eslint-utils: 3.0.0_eslint@8.32.0 + semver: 7.3.8 + transitivePeerDependencies: + - supports-color + - typescript + dev: false + /@typescript-eslint/visitor-keys/5.48.2: resolution: {integrity: sha512-z9njZLSkwmjFWUelGEwEbdf4NwKvfHxvGC0OcGN1Hp/XNDIcJ7D5DpPNPv6x6/mFvc1tQHsaWmpD/a4gOvvCJQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -6854,6 +6902,17 @@ packages: typescript: 5.1.3 dev: false + /@wagmi/chains/1.2.0_typescript@5.1.3: + resolution: {integrity: sha512-dmDRipsE54JfyudOBkuhEexqQWcrZqxn/qiujG8SBzMh/az/AH5xlJSA+j1CPWTx9+QofSMF3B7A4gb6XRmSaQ==} + peerDependencies: + typescript: '>=5.0.4' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + typescript: 5.1.3 + dev: false + /@wagmi/core/0.5.4_ethers@5.6.5+react@18.2.0: resolution: {integrity: sha512-EisAQTXyglnfzALHRnI8rSXlt95O3KNgBN4fHOQvYj6sBOsp/t9ooaqMIbqn4v5xMJSjmYgnQH1J5InQOcTCNg==} peerDependencies: @@ -7453,6 +7512,18 @@ packages: typescript: 5.1.3 dev: false + /abitype/0.8.7_typescript@5.1.3: + resolution: {integrity: sha512-wQ7hV8Yg/yKmGyFpqrNZufCxbszDe5es4AZGYPBitocfSqXtjrTG9JMWFcc4N30ukl2ve48aBTwt7NJxVQdU3w==} + peerDependencies: + typescript: '>=5.0.4' + zod: ^3 >=3.19.1 + peerDependenciesMeta: + zod: + optional: true + dependencies: + typescript: 5.1.3 + dev: false + /abortable-iterator/3.0.2: resolution: {integrity: sha512-qVP8HFfTpUQI2F+f1tpTriKDIZ4XrmwCrBCrQeRKO7DKWF3kgoT6NXiNDv2krrGcHxPwmI63eGQiec81sEaWIw==} dependencies: @@ -9164,6 +9235,22 @@ packages: /core-util-is/1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + /cosmiconfig-typescript-loader/1.0.9_52o3fzwfk432ygqn6zfy4glpsm: + resolution: {integrity: sha512-tRuMRhxN4m1Y8hP9SNYfz7jRwt8lZdWxdjg/ohg5esKmsndJIn4yT96oJVcf5x0eA11taXl+sIp+ielu529k6g==} + engines: {node: '>=12', npm: '>=6'} + peerDependencies: + '@types/node': '*' + typescript: '>=3' + dependencies: + '@types/node': 17.0.45 + cosmiconfig: 7.1.0 + ts-node: 10.9.1_52o3fzwfk432ygqn6zfy4glpsm + typescript: 5.1.3 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + dev: false + /cosmiconfig-typescript-loader/1.0.9_bdgp3l2zgaopogaavxusmetvge: resolution: {integrity: sha512-tRuMRhxN4m1Y8hP9SNYfz7jRwt8lZdWxdjg/ohg5esKmsndJIn4yT96oJVcf5x0eA11taXl+sIp+ielu529k6g==} engines: {node: '>=12', npm: '>=6'} @@ -9195,7 +9282,7 @@ packages: - '@swc/core' - '@swc/wasm' - /cosmiconfig-typescript-loader/4.3.0_ugny246yc6icgnsdsbppppispu: + /cosmiconfig-typescript-loader/4.3.0_ub4nl566p56thhqioxgvptkkdm: resolution: {integrity: sha512-NTxV1MFfZDLPiBMjxbHRwSh5LaLcPMwNdCutmnHJCKoVnlvldPWlllonKwrsRJ5pYZBIBGRWWU2tfvzxgeSW5Q==} engines: {node: '>=12', npm: '>=6'} peerDependencies: @@ -9204,9 +9291,9 @@ packages: ts-node: '>=10' typescript: '>=3' dependencies: - '@types/node': 20.2.4 + '@types/node': 17.0.45 cosmiconfig: 8.1.3 - ts-node: 10.9.1_3vrzguiji56yf2visveuztkowq + ts-node: 10.9.1_cin3sed6ohfsopbmt6orxeb4o4 typescript: 4.9.5 dev: true @@ -10607,7 +10694,7 @@ packages: - supports-color dev: false - /eslint-config-react-app/7.0.1_k2ve2ujp3etw4wajrwc6d5nn44: + /eslint-config-react-app/7.0.1_rkmbcnyk55fbocpfhxrgzv4hou: resolution: {integrity: sha512-K6rNzvkIeHaTd8m/QEh1Zko0KI7BACWkkneSs6s9cKZC/J27X3eZR6Upt1jkmZ/4FK+XUOPPxMEN7+lbUXfSlA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -10620,19 +10707,19 @@ packages: '@babel/core': 7.20.12 '@babel/eslint-parser': 7.19.1_2je5tsgpdnpnp4f5qs5fqust6m '@rushstack/eslint-patch': 1.2.0 - '@typescript-eslint/eslint-plugin': 5.48.2_caon6io6stgpr7lz2rtbhekxqy - '@typescript-eslint/parser': 5.48.2_7uibuqfxkfaozanbtbziikiqje + '@typescript-eslint/eslint-plugin': 5.48.2_eqvwjfxmulubckj424ok5c2fbq + '@typescript-eslint/parser': 5.48.2_uop6ct72k657fenbdl4ercalve babel-preset-react-app: 10.0.1 confusing-browser-globals: 1.0.11 eslint: 8.32.0 eslint-plugin-flowtype: 8.0.3_4bjgmjyhbqu232fj6ogxiegu6a eslint-plugin-import: 2.27.5_2l6piu6guil2f63lj3qmhzbnn4 - eslint-plugin-jest: 25.7.0_oklwt3ywjozre5ielzfah3spye + eslint-plugin-jest: 25.7.0_b2ff36rh2xsmiem4ke52zonfye eslint-plugin-jsx-a11y: 6.7.1_eslint@8.32.0 eslint-plugin-react: 7.32.1_eslint@8.32.0 eslint-plugin-react-hooks: 4.6.0_eslint@8.32.0 - eslint-plugin-testing-library: 5.9.1_7uibuqfxkfaozanbtbziikiqje - typescript: 4.9.4 + eslint-plugin-testing-library: 5.9.1_uop6ct72k657fenbdl4ercalve + typescript: 5.1.3 transitivePeerDependencies: - '@babel/plugin-syntax-flow' - '@babel/plugin-transform-react-jsx' @@ -10681,7 +10768,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 5.48.2_et5x32uxl7z5ldub3ye5rhlyqm + '@typescript-eslint/parser': 5.48.2_uop6ct72k657fenbdl4ercalve debug: 3.2.7 eslint: 8.32.0 eslint-import-resolver-node: 0.3.7 @@ -10751,7 +10838,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 5.48.2_et5x32uxl7z5ldub3ye5rhlyqm + '@typescript-eslint/parser': 5.48.2_uop6ct72k657fenbdl4ercalve array-includes: 3.1.6 array.prototype.flat: 1.3.1 array.prototype.flatmap: 1.3.1 @@ -10804,7 +10891,7 @@ packages: - eslint-import-resolver-webpack - supports-color - /eslint-plugin-jest/25.7.0_egvbvy6vpqabhepp7nvjtnhi4y: + /eslint-plugin-jest/25.7.0_b2ff36rh2xsmiem4ke52zonfye: resolution: {integrity: sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} peerDependencies: @@ -10817,14 +10904,16 @@ packages: jest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 5.48.2_zsau5d66ajjn27sdux2mc3vs6q - '@typescript-eslint/experimental-utils': 5.48.2_typescript@4.9.4 + '@typescript-eslint/eslint-plugin': 5.48.2_eqvwjfxmulubckj424ok5c2fbq + '@typescript-eslint/experimental-utils': 5.48.2_uop6ct72k657fenbdl4ercalve + eslint: 8.32.0 jest: 27.5.1 transitivePeerDependencies: - supports-color - typescript + dev: false - /eslint-plugin-jest/25.7.0_oklwt3ywjozre5ielzfah3spye: + /eslint-plugin-jest/25.7.0_egvbvy6vpqabhepp7nvjtnhi4y: resolution: {integrity: sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} peerDependencies: @@ -10837,14 +10926,12 @@ packages: jest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 5.48.2_caon6io6stgpr7lz2rtbhekxqy - '@typescript-eslint/experimental-utils': 5.48.2_7uibuqfxkfaozanbtbziikiqje - eslint: 8.32.0 + '@typescript-eslint/eslint-plugin': 5.48.2_zsau5d66ajjn27sdux2mc3vs6q + '@typescript-eslint/experimental-utils': 5.48.2_typescript@4.9.4 jest: 27.5.1 transitivePeerDependencies: - supports-color - typescript - dev: false /eslint-plugin-jest/25.7.0_r4bq2lubr4haot7ez66lg6eylu: resolution: {integrity: sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==} @@ -10991,42 +11078,42 @@ packages: semver: 6.3.0 string.prototype.matchall: 4.0.8 - /eslint-plugin-testing-library/5.9.1_7uibuqfxkfaozanbtbziikiqje: + /eslint-plugin-testing-library/5.9.1_et5x32uxl7z5ldub3ye5rhlyqm: resolution: {integrity: sha512-6BQp3tmb79jLLasPHJmy8DnxREe+2Pgf7L+7o09TSWPfdqqtQfRZmZNetr5mOs3yqZk/MRNxpN3RUpJe0wB4LQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0, npm: '>=6'} peerDependencies: eslint: ^7.5.0 || ^8.0.0 dependencies: - '@typescript-eslint/utils': 5.48.2_7uibuqfxkfaozanbtbziikiqje + '@typescript-eslint/utils': 5.48.2_et5x32uxl7z5ldub3ye5rhlyqm eslint: 8.32.0 transitivePeerDependencies: - supports-color - typescript dev: false - /eslint-plugin-testing-library/5.9.1_et5x32uxl7z5ldub3ye5rhlyqm: + /eslint-plugin-testing-library/5.9.1_typescript@4.9.4: resolution: {integrity: sha512-6BQp3tmb79jLLasPHJmy8DnxREe+2Pgf7L+7o09TSWPfdqqtQfRZmZNetr5mOs3yqZk/MRNxpN3RUpJe0wB4LQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0, npm: '>=6'} peerDependencies: eslint: ^7.5.0 || ^8.0.0 dependencies: - '@typescript-eslint/utils': 5.48.2_et5x32uxl7z5ldub3ye5rhlyqm - eslint: 8.32.0 + '@typescript-eslint/utils': 5.48.2_typescript@4.9.4 transitivePeerDependencies: - supports-color - typescript - dev: false - /eslint-plugin-testing-library/5.9.1_typescript@4.9.4: + /eslint-plugin-testing-library/5.9.1_uop6ct72k657fenbdl4ercalve: resolution: {integrity: sha512-6BQp3tmb79jLLasPHJmy8DnxREe+2Pgf7L+7o09TSWPfdqqtQfRZmZNetr5mOs3yqZk/MRNxpN3RUpJe0wB4LQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0, npm: '>=6'} peerDependencies: eslint: ^7.5.0 || ^8.0.0 dependencies: - '@typescript-eslint/utils': 5.48.2_typescript@4.9.4 + '@typescript-eslint/utils': 5.48.2_uop6ct72k657fenbdl4ercalve + eslint: 8.32.0 transitivePeerDependencies: - supports-color - typescript + dev: false /eslint-plugin-turbo/1.10.2_eslint@8.32.0: resolution: {integrity: sha512-Kxsy4zlKLrGkEqZgcAQtu16YqU/g0mV1vYa9/VweF+MSnWWQsEzsJ1qlzTfXV6N9VqGmkuLiyWOA84sRUklOOg==} @@ -11854,7 +11941,7 @@ packages: typescript: 4.9.4 webpack: 5.75.0 - /fork-ts-checker-webpack-plugin/6.5.2_onq6bphqf24ryelzi6znwfs3ra: + /fork-ts-checker-webpack-plugin/6.5.2_cju7zwqs4vxk327n27khsg3uyu: resolution: {integrity: sha512-m5cUmF30xkZ7h4tWUgTAcEaKmUW7tfyUyTqNNOz7OxWJ0v1VWKTcOvH8FWHUwSjlW/356Ijc9vi3XfcPstpQKA==} engines: {node: '>=10', yarn: '>=1.0.0'} peerDependencies: @@ -11882,7 +11969,7 @@ packages: schema-utils: 2.7.0 semver: 7.3.8 tapable: 1.1.3 - typescript: 4.9.4 + typescript: 5.1.3 webpack: 5.75.0 dev: false @@ -12690,7 +12777,7 @@ packages: resolution: {integrity: sha512-EAB3egrcalcTQHcjA7yzXXkE4E09TIFerR//4yUYGYCeCfXmkU0LgsGJgYSIQA1lQunfsn4ZCWJhbelgl3cdiQ==} engines: {node: '>=16.15.1', npm: '>=8.11.1'} dependencies: - punycode: 2.1.1 + punycode: 2.3.0 dev: false /ieee754/1.2.1: @@ -13966,7 +14053,7 @@ packages: '@jest/environment': 27.5.1 '@jest/test-result': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 18.15.5 + '@types/node': 17.0.45 chalk: 4.1.2 co: 4.6.0 dedent: 0.7.0 @@ -14094,7 +14181,7 @@ packages: '@jest/environment': 27.5.1 '@jest/fake-timers': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 18.15.5 + '@types/node': 17.0.45 jest-mock: 27.5.1 jest-util: 27.5.1 jsdom: 16.7.0 @@ -14111,7 +14198,7 @@ packages: '@jest/environment': 27.5.1 '@jest/fake-timers': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 18.15.5 + '@types/node': 17.0.45 jest-mock: 27.5.1 jest-util: 27.5.1 @@ -14160,7 +14247,7 @@ packages: dependencies: '@jest/types': 27.5.1 '@types/graceful-fs': 4.1.6 - '@types/node': 18.15.5 + '@types/node': 17.0.45 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.10 @@ -14181,7 +14268,7 @@ packages: '@jest/source-map': 27.5.1 '@jest/test-result': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 18.15.5 + '@types/node': 17.0.45 chalk: 4.1.2 co: 4.6.0 expect: 27.5.1 @@ -14274,7 +14361,7 @@ packages: engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: '@jest/types': 27.5.1 - '@types/node': 18.15.5 + '@types/node': 17.0.45 /jest-pnp-resolver/1.2.3_jest-resolve@27.5.1: resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} @@ -14333,7 +14420,7 @@ packages: '@jest/test-result': 27.5.1 '@jest/transform': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 18.15.5 + '@types/node': 17.0.45 chalk: 4.1.2 emittery: 0.8.1 graceful-fs: 4.2.10 @@ -14395,7 +14482,7 @@ packages: resolution: {integrity: sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@types/node': 18.15.5 + '@types/node': 17.0.45 graceful-fs: 4.2.10 /jest-snapshot/27.5.1: @@ -14447,7 +14534,7 @@ packages: engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: '@jest/types': 27.5.1 - '@types/node': 18.15.5 + '@types/node': 17.0.45 chalk: 4.1.2 ci-info: 3.7.1 graceful-fs: 4.2.10 @@ -14458,7 +14545,7 @@ packages: engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} dependencies: '@jest/types': 28.1.3 - '@types/node': 18.15.5 + '@types/node': 17.0.45 chalk: 4.1.2 ci-info: 3.7.1 graceful-fs: 4.2.10 @@ -14469,7 +14556,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.5.0 - '@types/node': 18.15.5 + '@types/node': 17.0.45 chalk: 4.1.2 ci-info: 3.7.1 graceful-fs: 4.2.10 @@ -14507,7 +14594,7 @@ packages: dependencies: '@jest/test-result': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 18.15.5 + '@types/node': 17.0.45 ansi-escapes: 4.3.2 chalk: 4.1.2 jest-util: 27.5.1 @@ -14519,7 +14606,7 @@ packages: dependencies: '@jest/test-result': 28.1.3 '@jest/types': 28.1.3 - '@types/node': 18.15.5 + '@types/node': 17.0.45 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.10.2 @@ -14538,7 +14625,7 @@ packages: resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 18.15.5 + '@types/node': 17.0.45 merge-stream: 2.0.0 supports-color: 7.2.0 @@ -14546,7 +14633,7 @@ packages: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 18.15.5 + '@types/node': 17.0.45 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -14554,7 +14641,7 @@ packages: resolution: {integrity: sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} dependencies: - '@types/node': 18.15.5 + '@types/node': 17.0.45 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -15881,7 +15968,7 @@ packages: /ms/2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - /msw/0.47.4_typescript@4.9.4: + /msw/0.47.4_typescript@4.9.5: resolution: {integrity: sha512-Psftt8Yfl0+l+qqg9OlmKEsxF8S/vtda0CmlR6y8wTaWrMMzuCDa55n2hEGC0ZRDwuV6FFWc/4CjoDsBpATKBw==} engines: {node: '>=14'} hasBin: true @@ -15911,14 +15998,14 @@ packages: statuses: 2.0.1 strict-event-emitter: 0.2.8 type-fest: 2.19.0 - typescript: 4.9.4 + typescript: 4.9.5 yargs: 17.6.2 transitivePeerDependencies: - encoding - supports-color - dev: false + dev: true - /msw/0.47.4_typescript@4.9.5: + /msw/0.47.4_typescript@5.1.3: resolution: {integrity: sha512-Psftt8Yfl0+l+qqg9OlmKEsxF8S/vtda0CmlR6y8wTaWrMMzuCDa55n2hEGC0ZRDwuV6FFWc/4CjoDsBpATKBw==} engines: {node: '>=14'} hasBin: true @@ -15948,12 +16035,12 @@ packages: statuses: 2.0.1 strict-event-emitter: 0.2.8 type-fest: 2.19.0 - typescript: 4.9.5 + typescript: 5.1.3 yargs: 17.6.2 transitivePeerDependencies: - encoding - supports-color - dev: true + dev: false /multiaddr-to-uri/8.0.0_node-fetch@3.3.1: resolution: {integrity: sha512-dq4p/vsOOUdVEd1J1gl+R2GFrXJQH8yjLtz4hodqdVbieg39LvBOdMQRdQnfbg5LSM/q1BYNVf5CBbwZFFqBgA==} @@ -17761,7 +17848,7 @@ packages: '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 '@types/long': 4.0.2 - '@types/node': 18.15.5 + '@types/node': 17.0.45 long: 4.0.0 dev: false @@ -17780,7 +17867,7 @@ packages: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 18.15.5 + '@types/node': 17.0.45 long: 5.2.1 dev: false @@ -17838,11 +17925,6 @@ packages: resolution: {integrity: sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==} dev: false - /punycode/2.1.1: - resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==} - engines: {node: '>=6'} - dev: false - /punycode/2.3.0: resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} engines: {node: '>=6'} @@ -18039,7 +18121,7 @@ packages: - supports-color - vue-template-compiler - /react-dev-utils/12.0.1_onq6bphqf24ryelzi6znwfs3ra: + /react-dev-utils/12.0.1_cju7zwqs4vxk327n27khsg3uyu: resolution: {integrity: sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==} engines: {node: '>=14'} peerDependencies: @@ -18058,7 +18140,7 @@ packages: escape-string-regexp: 4.0.0 filesize: 8.0.7 find-up: 5.0.0 - fork-ts-checker-webpack-plugin: 6.5.2_onq6bphqf24ryelzi6znwfs3ra + fork-ts-checker-webpack-plugin: 6.5.2_cju7zwqs4vxk327n27khsg3uyu global-modules: 2.0.0 globby: 11.1.0 gzip-size: 6.0.0 @@ -18073,7 +18155,7 @@ packages: shell-quote: 1.7.4 strip-ansi: 6.0.1 text-table: 0.2.0 - typescript: 4.9.4 + typescript: 5.1.3 webpack: 5.75.0 transitivePeerDependencies: - eslint @@ -18509,7 +18591,7 @@ packages: - webpack-plugin-serve dev: false - /react-scripts/5.0.1_nxhyxwde3eoe75duibejr53p3m: + /react-scripts/5.0.1_76nepyrl5hy47g5kyu4rnyveva: resolution: {integrity: sha512-8VAmEm/ZAwQzJ+GOMLbBsTdDKOpuZh7RPs0UymvBR2vRk4iZWCskjbFnxqjrzoIvlNNRZ3QJFx6/qDSi6zSnaQ==} engines: {node: '>=14.0.0'} hasBin: true @@ -18537,7 +18619,7 @@ packages: dotenv: 10.0.0 dotenv-expand: 5.1.0 eslint: 8.32.0 - eslint-config-react-app: 7.0.1_k2ve2ujp3etw4wajrwc6d5nn44 + eslint-config-react-app: 7.0.1_rkmbcnyk55fbocpfhxrgzv4hou eslint-webpack-plugin: 3.2.0_ozjdf2ywoi3qlyjpudft42m7aq file-loader: 6.2.0_webpack@5.75.0 fs-extra: 10.1.0 @@ -18555,7 +18637,7 @@ packages: prompts: 2.4.2 react: 18.2.0 react-app-polyfill: 3.0.0 - react-dev-utils: 12.0.1_onq6bphqf24ryelzi6znwfs3ra + react-dev-utils: 12.0.1_cju7zwqs4vxk327n27khsg3uyu react-refresh: 0.11.0 resolve: 1.22.1 resolve-url-loader: 4.0.0 @@ -18565,7 +18647,7 @@ packages: style-loader: 3.3.1_webpack@5.75.0 tailwindcss: 3.2.4_postcss@8.4.21 terser-webpack-plugin: 5.3.6_webpack@5.75.0 - typescript: 4.9.4 + typescript: 5.1.3 webpack: 5.75.0 webpack-dev-server: 4.11.1_webpack@5.75.0 webpack-manifest-plugin: 4.1.1_webpack@5.75.0 @@ -20482,7 +20564,7 @@ packages: yargs-parser: 20.2.9 dev: false - /ts-node/10.9.1_3vrzguiji56yf2visveuztkowq: + /ts-node/10.9.1_52o3fzwfk432ygqn6zfy4glpsm: resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: @@ -20501,17 +20583,17 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 20.2.4 + '@types/node': 17.0.45 acorn: 8.8.2 acorn-walk: 8.2.0 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 4.9.5 + typescript: 5.1.3 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 - dev: true + dev: false /ts-node/10.9.1_bdgp3l2zgaopogaavxusmetvge: resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} @@ -20544,6 +20626,37 @@ packages: yn: 3.1.1 dev: false + /ts-node/10.9.1_cin3sed6ohfsopbmt6orxeb4o4: + resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} + hasBin: true + peerDependencies: + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' + peerDependenciesMeta: + '@swc/core': + optional: true + '@swc/wasm': + optional: true + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.9 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.4 + '@types/node': 17.0.45 + acorn: 8.8.2 + acorn-walk: 8.2.0 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 4.9.5 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + dev: true + /ts-node/10.9.1_zpb5kzpnyozdjq4cwaojlul57u: resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true @@ -20619,6 +20732,15 @@ packages: tslib: 1.14.1 typescript: 4.9.5 + /tsutils/3.21.0_typescript@5.1.3: + 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: 5.1.3 + /tty-browserify/0.0.0: resolution: {integrity: sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw==} dev: false @@ -20794,7 +20916,6 @@ packages: resolution: {integrity: sha512-XH627E9vkeqhlZFQuL+UsyAXEnibT0kWR2FWONlr4sTjvxyJYnyefgrkyECLzM5NenmKzRAy2rR/OlYLA1HkZw==} engines: {node: '>=14.17'} hasBin: true - dev: false /uc.micro/1.0.6: resolution: {integrity: sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==} @@ -21115,6 +21236,27 @@ packages: - zod dev: false + /viem/1.1.4_typescript@5.1.3: + resolution: {integrity: sha512-3bJkS60Sw6Rf6a2ydKDnDxAI0PTZK0yGoyux2nqPSBoXBL+w9hXPNcnm8Uf6FlKce5sQadVRfi2n6MrgzablxA==} + peerDependencies: + typescript: '>=5.0.4' + dependencies: + '@adraffy/ens-normalize': 1.9.0 + '@noble/curves': 1.0.0 + '@noble/hashes': 1.3.0 + '@scure/bip32': 1.3.0 + '@scure/bip39': 1.2.0 + '@wagmi/chains': 1.2.0_typescript@5.1.3 + abitype: 0.8.7_typescript@5.1.3 + isomorphic-ws: 5.0.0_ws@8.12.0 + typescript: 5.1.3 + ws: 8.12.0 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + - zod + dev: false + /vm-browserify/1.1.2: resolution: {integrity: sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==} dev: false @@ -22068,3 +22210,10 @@ packages: dependencies: '@types/node': 18.15.5 dev: false + + github.com/gitcoinco/pluralistic.js/b193c5cd7f089ff17a813b062aebc5df5e715241: + resolution: {tarball: https://codeload.github.com/gitcoinco/pluralistic.js/tar.gz/b193c5cd7f089ff17a813b062aebc5df5e715241} + name: pluralistic + version: 0.1.0 + requiresBuild: true + dev: false