diff --git a/Dockerfile b/Dockerfile index e05fac2a3a5d..80e857c82e94 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,7 +7,7 @@ ENV ENVIRONMENT=$ENVIRONMENT ENV ORIGIN=$ORIGIN ENV PNPM_HOME="/usr/bin" -ENV NODE_OPTIONS="--max_old_space_size=8192" +ENV NODE_OPTIONS="--max-old-space-size=8192" RUN apk add --no-cache git RUN npm install -g corepack@latest diff --git a/package.json b/package.json index 3fbba8223f21..ef163fc97e95 100644 --- a/package.json +++ b/package.json @@ -2,10 +2,10 @@ "name": "graph-docs", "private": true, "version": "1.0.0", - "packageManager": "pnpm@10.12.1", + "packageManager": "pnpm@10.12.3", "scripts": { "dev": "turbo run dev", - "build": "NODE_OPTIONS='--max_old_space_size=8192' turbo run build", + "build": "NODE_OPTIONS='--max-old-space-size=8192' turbo run build", "prebuild:ci": "turbo run prebuild:ci", "check": "pnpm typecheck && pnpm lint && pnpm prettier:check", "check:fix": "pnpm lint:fix; pnpm prettier", @@ -21,11 +21,11 @@ }, "devDependencies": { "@edgeandnode/eslint-config": "^2.0.3", - "@types/node": "^22.15.31", + "@types/node": "^22.15.33", "eslint": "^8.57.1", - "eslint-plugin-mdx": "^3.4.2", - "prettier": "^3.5.3", - "prettier-plugin-tailwindcss": "^0.6.12", + "eslint-plugin-mdx": "^3.5.0", + "prettier": "^3.6.1", + "prettier-plugin-tailwindcss": "^0.6.13", "remark-frontmatter": "^5.0.0", "remark-lint-first-heading-level": "^4.0.1", "remark-lint-heading-increment": "^4.0.1", diff --git a/packages/og-image/package.json b/packages/og-image/package.json index 173d52cb8185..6666c73f6868 100644 --- a/packages/og-image/package.json +++ b/packages/og-image/package.json @@ -16,13 +16,13 @@ "yoga-wasm-web": "^0.3.3" }, "devDependencies": { - "@cloudflare/workers-types": "^4.20250610.0", + "@cloudflare/workers-types": "^4.20250620.0", "@types/react": "^18.3.23", "jest-image-snapshot": "^6.5.1", - "tsx": "^4.19.4", + "tsx": "^4.20.3", "typescript": "^5.8.3", "vitest": "^2.1.9", - "wrangler": "^3.114.9" + "wrangler": "^3.114.10" }, "sideEffects": false } diff --git a/packages/og-image/scripts/copy-wasm.ts b/packages/og-image/scripts/copy-wasm.ts index a93ba951ffca..1fccfb1974b2 100644 --- a/packages/og-image/scripts/copy-wasm.ts +++ b/packages/og-image/scripts/copy-wasm.ts @@ -1,12 +1,12 @@ import { readFile, writeFile } from 'node:fs/promises' import { createRequire } from 'node:module' -import { join } from 'node:path' +import path from 'node:path' const require = createRequire(import.meta.url) const __dirname = new URL('.', import.meta.url).pathname await writeFile( - join(__dirname, '../vendor/index_bg.wasm'), + path.join(__dirname, '../vendor/index_bg.wasm'), await readFile(require.resolve('@resvg/resvg-wasm/index_bg.wasm')), ) diff --git a/packages/rehype-unwrap-images/package.json b/packages/rehype-unwrap-images/package.json deleted file mode 100644 index 840cb136f675..000000000000 --- a/packages/rehype-unwrap-images/package.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "rehype-unwrap-images", - "private": true, - "version": "0.0.0", - "type": "module", - "main": "index.js", - "author": "Titus Wormer (https://wooorm.com)", - "dependencies": { - "@types/hast": "^3.0.4", - "hast-util-interactive": "^3.0.0", - "hast-util-whitespace": "^3.0.0", - "unist-util-visit": "^5.0.0" - }, - "sideEffects": false -} diff --git a/packages/remark-callouts/package.json b/packages/remark-callouts/package.json deleted file mode 100644 index b4c241d98811..000000000000 --- a/packages/remark-callouts/package.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "name": "remark-callouts", - "private": true, - "version": "0.0.0", - "type": "module", - "main": "index.js", - "author": "Benoît Rouleau ", - "dependencies": { - "unist-util-visit": "^5.0.0" - }, - "sideEffects": false -} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 01d75f8798fd..ad41d31ff629 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -15,20 +15,20 @@ importers: specifier: ^2.0.3 version: 2.0.3(eslint@8.57.1)(typescript@5.8.3) '@types/node': - specifier: ^22.15.31 - version: 22.15.31 + specifier: ^22.15.33 + version: 22.15.33 eslint: specifier: ^8.57.1 version: 8.57.1 eslint-plugin-mdx: - specifier: ^3.4.2 - version: 3.4.2(eslint@8.57.1) + specifier: ^3.5.0 + version: 3.5.0(eslint@8.57.1) prettier: - specifier: ^3.5.3 - version: 3.5.3 + specifier: ^3.6.1 + version: 3.6.1 prettier-plugin-tailwindcss: - specifier: ^0.6.12 - version: 0.6.12(prettier@3.5.3) + specifier: ^0.6.13 + version: 0.6.13(prettier@3.6.1) remark-frontmatter: specifier: ^5.0.0 version: 5.0.0 @@ -67,8 +67,8 @@ importers: version: 0.3.3 devDependencies: '@cloudflare/workers-types': - specifier: ^4.20250610.0 - version: 4.20250610.0 + specifier: ^4.20250620.0 + version: 4.20250620.0 '@types/react': specifier: ^18.3.23 version: 18.3.23 @@ -76,38 +76,17 @@ importers: specifier: ^6.5.1 version: 6.5.1 tsx: - specifier: ^4.19.4 - version: 4.19.4 + specifier: ^4.20.3 + version: 4.20.3 typescript: specifier: ^5.8.3 version: 5.8.3 vitest: specifier: ^2.1.9 - version: 2.1.9(@types/node@22.15.31)(jsdom@24.1.3) + version: 2.1.9(@types/node@22.15.33)(jsdom@24.1.3) wrangler: - specifier: ^3.114.9 - version: 3.114.9(@cloudflare/workers-types@4.20250610.0) - - packages/rehype-unwrap-images: - dependencies: - '@types/hast': - specifier: ^3.0.4 - version: 3.0.4 - hast-util-interactive: - specifier: ^3.0.0 - version: 3.0.0 - hast-util-whitespace: - specifier: ^3.0.0 - version: 3.0.0 - unist-util-visit: - specifier: ^5.0.0 - version: 5.0.0 - - packages/remark-callouts: - dependencies: - unist-util-visit: - specifier: ^5.0.0 - version: 5.0.0 + specifier: ^3.114.10 + version: 3.114.10(@cloudflare/workers-types@4.20250620.0) packages/remark-lint-restrict-elements: dependencies: @@ -122,22 +101,22 @@ importers: dependencies: '@docsearch/react': specifier: ^3.9.0 - version: 3.9.0(@algolia/client-search@5.27.0)(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3) + version: 3.9.0(@algolia/client-search@5.29.0)(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3) '@edgeandnode/common': specifier: ^7.0.4 - version: 7.0.4(hardhat@2.24.2(typescript@5.8.3)) + version: 7.0.4(hardhat@2.25.0(typescript@5.8.3)) '@edgeandnode/gds': - specifier: ^6.5.15 - version: 6.5.15(@emotion/is-prop-valid@0.8.8)(@emotion/react@11.14.0(@types/react@18.3.23)(react@18.3.1))(@theme-ui/core@0.17.2(@emotion/react@11.14.0(@types/react@18.3.23)(react@18.3.1))(react@18.3.1))(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(dayjs@1.11.13)(hardhat@2.24.2(typescript@5.8.3))(next@14.2.29(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1)(theme-ui@0.17.2(@emotion/react@11.14.0(@types/react@18.3.23)(react@18.3.1))(react@18.3.1))(typescript@5.8.3) + specifier: ^6.6.2 + version: 6.6.2(@emotion/is-prop-valid@0.8.8)(@emotion/react@11.14.0(@types/react@18.3.23)(react@18.3.1))(@theme-ui/core@0.17.2(@emotion/react@11.14.0(@types/react@18.3.23)(react@18.3.1))(react@18.3.1))(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(dayjs@1.11.13)(hardhat@2.25.0(typescript@5.8.3))(next@14.2.30(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1)(theme-ui@0.17.2(@emotion/react@11.14.0(@types/react@18.3.23)(react@18.3.1))(react@18.3.1))(typescript@5.8.3) '@edgeandnode/go': - specifier: ^10.1.1 - version: 10.1.1(ae149f031949f9aa05d727c3c6926441) + specifier: ^10.2.3 + version: 10.2.3(f31233e6aec53dd14ecd91b56887af79) '@emotion/react': specifier: ^11.14.0 version: 11.14.0(@types/react@18.3.23)(react@18.3.1) '@graphprotocol/contracts': - specifier: ^7.1.2 - version: 7.1.2 + specifier: ^7.3.0 + version: 7.3.0 '@pinax/graph-networks-registry': specifier: ^0.6.7 version: 0.6.7 @@ -153,27 +132,39 @@ importers: fetch-har: specifier: ^11.1.1 version: 11.1.1 + hast: + specifier: ^1.0.0 + version: 1.0.0 + hast-util-whitespace: + specifier: ^3.0.0 + version: 3.0.0 lodash: specifier: ^4.17.21 version: 4.17.21 + mdast-util-mdx-jsx: + specifier: ^3.2.0 + version: 3.2.0 + mdast-util-to-hast: + specifier: ^13.2.0 + version: 13.2.0 mixpanel-browser: specifier: ^2.65.0 version: 2.65.0 motion: - specifier: ^12.16.0 - version: 12.16.0(@emotion/is-prop-valid@0.8.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^12.19.1 + version: 12.19.1(@emotion/is-prop-valid@0.8.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) next: - specifier: ^14.2.29 - version: 14.2.29(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^14.2.30 + version: 14.2.30(react-dom@18.3.1(react@18.3.1))(react@18.3.1) next-seo: specifier: ^6.8.0 - version: 6.8.0(next@14.2.29(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 6.8.0(next@14.2.30(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) next-sitemap: specifier: ^4.2.3 - version: 4.2.3(next@14.2.29(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + version: 4.2.3(next@14.2.30(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) nextra: specifier: ^3.3.1 - version: 3.3.1(@types/react@18.3.23)(acorn@8.15.0)(next@14.2.29(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3) + version: 3.3.1(@types/react@18.3.23)(acorn@8.15.0)(next@14.2.30(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3) openapi-types: specifier: ^12.1.3 version: 12.1.3 @@ -192,25 +183,25 @@ importers: rehype-mdx-code-props: specifier: ^3.0.1 version: 3.0.1 - rehype-unwrap-images: - specifier: workspace:* - version: link:../packages/rehype-unwrap-images - remark-callouts: - specifier: workspace:* - version: link:../packages/remark-callouts theme-ui: specifier: ^0.17.2 version: 0.17.2(@emotion/react@11.14.0(@types/react@18.3.23)(react@18.3.1))(react@18.3.1) unist-util-visit: specifier: ^5.0.0 version: 5.0.0 + vfile: + specifier: ^6.0.3 + version: 6.0.3 zod: - specifier: ^3.25.57 - version: 3.25.57 + specifier: ^3.25.67 + version: 3.25.67 devDependencies: + '@types/hast': + specifier: ^3.0.4 + version: 3.0.4 '@types/lodash': - specifier: ^4.17.17 - version: 4.17.17 + specifier: ^4.17.19 + version: 4.17.19 '@types/mdast': specifier: ^4.0.4 version: 4.0.4 @@ -218,32 +209,35 @@ importers: specifier: ^2.60.0 version: 2.60.0 '@types/node': - specifier: ^22.15.31 - version: 22.15.31 + specifier: ^22.15.33 + version: 22.15.33 '@types/react': specifier: ^18.3.23 version: 18.3.23 '@types/react-dom': specifier: ^18.3.7 version: 18.3.7(@types/react@18.3.23) + '@types/vfile': + specifier: ^4.0.0 + version: 4.0.0 autoprefixer: specifier: ^10.4.21 - version: 10.4.21(postcss@8.5.4) + version: 10.4.21(postcss@8.5.6) fast-xml-parser: specifier: ^5.2.5 version: 5.2.5 postcss: - specifier: ^8.5.4 - version: 8.5.4 + specifier: ^8.5.6 + version: 8.5.6 tailwindcss: specifier: ^3.4.17 version: 3.4.17 tsup: specifier: ^8.5.0 - version: 8.5.0(jiti@1.21.7)(postcss@8.5.4)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.8.0) + version: 8.5.0(jiti@1.21.7)(postcss@8.5.6)(tsx@4.20.3)(typescript@5.8.3)(yaml@2.8.0) tsx: - specifier: ^4.19.4 - version: 4.19.4 + specifier: ^4.20.3 + version: 4.20.3 packages: @@ -273,56 +267,56 @@ packages: '@algolia/client-search': '>= 4.9.1 < 6' algoliasearch: '>= 4.9.1 < 6' - '@algolia/client-abtesting@5.27.0': - resolution: {integrity: sha512-SITU5umoknxETtw67TxJu9njyMkWiH8pM+Bvw4dzfuIrIAT6Y1rmwV4y0A0didWoT+6xVuammIykbtBMolBcmg==} + '@algolia/client-abtesting@5.29.0': + resolution: {integrity: sha512-AM/6LYMSTnZvAT5IarLEKjYWOdV+Fb+LVs8JRq88jn8HH6bpVUtjWdOZXqX1hJRXuCAY8SdQfb7F8uEiMNXdYQ==} engines: {node: '>= 14.0.0'} - '@algolia/client-analytics@5.27.0': - resolution: {integrity: sha512-go1b9qIZK5vYEQ7jD2bsfhhhVsoh9cFxQ5xF8TzTsg2WOCZR3O92oXCkq15SOK0ngJfqDU6a/k0oZ4KuEnih1Q==} + '@algolia/client-analytics@5.29.0': + resolution: {integrity: sha512-La34HJh90l0waw3wl5zETO8TuukeUyjcXhmjYZL3CAPLggmKv74mobiGRIb+mmBENybiFDXf/BeKFLhuDYWMMQ==} engines: {node: '>= 14.0.0'} - '@algolia/client-common@5.27.0': - resolution: {integrity: sha512-tnFOzdNuMzsz93kOClj3fKfuYoF3oYaEB5bggULSj075GJ7HUNedBEm7a6ScrjtnOaOtipbnT7veUpHA4o4wEQ==} + '@algolia/client-common@5.29.0': + resolution: {integrity: sha512-T0lzJH/JiCxQYtCcnWy7Jf1w/qjGDXTi2npyF9B9UsTvXB97GRC6icyfXxe21mhYvhQcaB1EQ/J2575FXxi2rA==} engines: {node: '>= 14.0.0'} - '@algolia/client-insights@5.27.0': - resolution: {integrity: sha512-y1qgw39qZijjQBXrqZTiwK1cWgWGRiLpJNWBv9w36nVMKfl9kInrfsYmdBAfmlhVgF/+Woe0y1jQ7pa4HyShAw==} + '@algolia/client-insights@5.29.0': + resolution: {integrity: sha512-A39F1zmHY9aev0z4Rt3fTLcGN5AG1VsVUkVWy6yQG5BRDScktH+U5m3zXwThwniBTDV1HrPgiGHZeWb67GkR2Q==} engines: {node: '>= 14.0.0'} - '@algolia/client-personalization@5.27.0': - resolution: {integrity: sha512-XluG9qPZKEbiLoIfXTKbABsWDNOMPx0t6T2ImJTTeuX+U/zBdmfcqqgcgkqXp+vbXof/XX/4of9Eqo1JaqEmKw==} + '@algolia/client-personalization@5.29.0': + resolution: {integrity: sha512-ibxmh2wKKrzu5du02gp8CLpRMeo+b/75e4ORct98CT7mIxuYFXowULwCd6cMMkz/R0LpKXIbTUl15UL5soaiUQ==} engines: {node: '>= 14.0.0'} - '@algolia/client-query-suggestions@5.27.0': - resolution: {integrity: sha512-V8/To+SsAl2sdw2AAjeLJuCW1L+xpz+LAGerJK7HKqHzE5yQhWmIWZTzqYQcojkii4iBMYn0y3+uReWqT8XVSQ==} + '@algolia/client-query-suggestions@5.29.0': + resolution: {integrity: sha512-VZq4/AukOoJC2WSwF6J5sBtt+kImOoBwQc1nH3tgI+cxJBg7B77UsNC+jT6eP2dQCwGKBBRTmtPLUTDDnHpMgA==} engines: {node: '>= 14.0.0'} - '@algolia/client-search@5.27.0': - resolution: {integrity: sha512-EJJ7WmvmUXZdchueKFCK8UZFyLqy4Hz64snNp0cTc7c0MKaSeDGYEDxVsIJKp15r7ORaoGxSyS4y6BGZMXYuCg==} + '@algolia/client-search@5.29.0': + resolution: {integrity: sha512-cZ0Iq3OzFUPpgszzDr1G1aJV5UMIZ4VygJ2Az252q4Rdf5cQMhYEIKArWY/oUjMhQmosM8ygOovNq7gvA9CdCg==} engines: {node: '>= 14.0.0'} - '@algolia/ingestion@1.27.0': - resolution: {integrity: sha512-xNCyWeqpmEo4EdmpG57Fs1fJIQcPwt5NnJ6MBdXnUdMVXF4f5PHgza+HQWQQcYpCsune96jfmR0v7us6gRIlCw==} + '@algolia/ingestion@1.29.0': + resolution: {integrity: sha512-scBXn0wO5tZCxmO6evfa7A3bGryfyOI3aoXqSQBj5SRvNYXaUlFWQ/iKI70gRe/82ICwE0ICXbHT/wIvxOW7vw==} engines: {node: '>= 14.0.0'} - '@algolia/monitoring@1.27.0': - resolution: {integrity: sha512-P0NDiEFyt9UYQLBI0IQocIT7xHpjMpoFN3UDeerbztlkH9HdqT0GGh1SHYmNWpbMWIGWhSJTtz6kSIWvFu4+pw==} + '@algolia/monitoring@1.29.0': + resolution: {integrity: sha512-FGWWG9jLFhsKB7YiDjM2dwQOYnWu//7Oxrb2vT96N7+s+hg1mdHHfHNRyEudWdxd4jkMhBjeqNA21VbTiOIPVg==} engines: {node: '>= 14.0.0'} - '@algolia/recommend@5.27.0': - resolution: {integrity: sha512-cqfTMF1d1cc7hg0vITNAFxJZas7MJ4Obc36WwkKpY23NOtGb+4tH9X7UKlQa2PmTgbXIANoJ/DAQTeiVlD2I4Q==} + '@algolia/recommend@5.29.0': + resolution: {integrity: sha512-xte5+mpdfEARAu61KXa4ewpjchoZuJlAlvQb8ptK6hgHlBHDnYooy1bmOFpokaAICrq/H9HpoqNUX71n+3249A==} engines: {node: '>= 14.0.0'} - '@algolia/requester-browser-xhr@5.27.0': - resolution: {integrity: sha512-ErenYTcXl16wYXtf0pxLl9KLVxIztuehqXHfW9nNsD8mz9OX42HbXuPzT7y6JcPiWJpc/UU/LY5wBTB65vsEUg==} + '@algolia/requester-browser-xhr@5.29.0': + resolution: {integrity: sha512-og+7Em75aPHhahEUScq2HQ3J7ULN63Levtd87BYMpn6Im5d5cNhaC4QAUsXu6LWqxRPgh4G+i+wIb6tVhDhg2A==} engines: {node: '>= 14.0.0'} - '@algolia/requester-fetch@5.27.0': - resolution: {integrity: sha512-CNOvmXsVi+IvT7z1d+6X7FveVkgEQwTNgipjQCHTIbF9KSMfZR7tUsJC+NpELrm10ALdOMauah84ybs9rw1cKQ==} + '@algolia/requester-fetch@5.29.0': + resolution: {integrity: sha512-JCxapz7neAy8hT/nQpCvOrI5JO8VyQ1kPvBiaXWNC1prVq0UMYHEL52o1BsPvtXfdQ7BVq19OIq6TjOI06mV/w==} engines: {node: '>= 14.0.0'} - '@algolia/requester-node-http@5.27.0': - resolution: {integrity: sha512-Nx9EdLYZDsaYFTthqmc0XcVvsx6jqeEX8fNiYOB5i2HboQwl8pJPj1jFhGqoGd0KG7KFR+sdPO5/e0EDDAru2Q==} + '@algolia/requester-node-http@5.29.0': + resolution: {integrity: sha512-lVBD81RBW5VTdEYgnzCz7Pf9j2H44aymCP+/eHGJu4vhU+1O8aKf3TVBgbQr5UM6xoe8IkR/B112XY6YIG2vtg==} engines: {node: '>= 14.0.0'} '@alloc/quick-lru@5.2.0': @@ -335,8 +329,8 @@ packages: '@antfu/utils@8.1.1': resolution: {integrity: sha512-Mex9nXf9vR6AhcXmMrlz/HVgYYZpVGJ6YlPgwl7UnaFpnshXs6EK/oa5Gpf3CzENMjkvEx2tQtntGnb7UtSTOQ==} - '@apidevtools/json-schema-ref-parser@13.0.4': - resolution: {integrity: sha512-uL4dmc/lM3EA0i6oTflN1GZpMmZWYKllmcbGAzwYO/Wp9r+RGoTw4RBstCh0ri/yqoQo+itAt3GWLLgW8RIEEg==} + '@apidevtools/json-schema-ref-parser@13.0.5': + resolution: {integrity: sha512-xfh4xVJD62gG6spIc7lwxoWT+l16nZu1ELyU8FkjaP/oD2yP09EvLAU6KhtudN9aML2Khhs9pY6Slr7KGTES3w==} engines: {node: '>= 16'} '@asamuzakjp/css-color@3.2.0': @@ -459,8 +453,8 @@ packages: cpu: [x64] os: [win32] - '@cloudflare/workers-types@4.20250610.0': - resolution: {integrity: sha512-HxnUoey3QxCEfy07pUm7J42jBi9YPHq/hA3fw6JmOqYLHdviHI28OA8lup+2RUaHwDzh6q1DSfrBvvDqde645A==} + '@cloudflare/workers-types@4.20250620.0': + resolution: {integrity: sha512-EVvRB/DJEm6jhdKg+A4Qm4y/ry1cIvylSgSO3/f/Bv161vldDRxaXM2YoQQWFhLOJOw0qtrHsKOD51KYxV1XCw==} '@corex/deepmerge@4.0.43': resolution: {integrity: sha512-N8uEMrMPL0cu/bdboEWpQYb/0i2K5Qn8eCsxzOmxSggJbbQte7ljMRoXm917AbntqTGOzdTu+vP3KOOzoC70HQ==} @@ -520,8 +514,8 @@ packages: '@edgeandnode/common@7.0.4': resolution: {integrity: sha512-R5i6tPnmUY00nbaWKvrLlfToFciJSm7Kk5boql16f+NzZnvsk6+SxFWi7b/hmQfEbaXm74isD/yfVcLPX6h+Aw==} - '@edgeandnode/ens@2.2.0': - resolution: {integrity: sha512-ESl34YCcGjPyjcAO/evV0YebRCizNXRyrzR6QNoPgzaC05sAWkRoRl07INwsX6G//KsQE1G13n1LhgcUcR/UiQ==} + '@edgeandnode/ens@2.3.0': + resolution: {integrity: sha512-/yR49B7zOwErCDjV21COTmpu7JsGqRtgDV7AnlzXU4CWtuYJlyzJ3len8fzPocKrk2C55yXc530kFwBknAQ9Og==} peerDependencies: viem: ^2.30.0 @@ -534,8 +528,8 @@ packages: typescript: optional: true - '@edgeandnode/gds@6.5.15': - resolution: {integrity: sha512-++Ptbf1OFqAUTeU31k17Bw+pfyX0Je4Itr9EdrRN1HWQAWrACK2BiBVAZKsp0YGThxFkgLuQ0CZ1+KKwWuBy8Q==} + '@edgeandnode/gds@6.6.2': + resolution: {integrity: sha512-lXr4YQpnTitq+mqvRXIM6i2W36PPjtC/AHuPQsVK7uJbLXQ392ghuzHASFrtT7/XjY6nZ3vHg0zktVexFimM5Q==} peerDependencies: '@emotion/react': ^11 dayjs: ^1.11 @@ -547,12 +541,12 @@ packages: next: optional: true - '@edgeandnode/go@10.1.1': - resolution: {integrity: sha512-5dXn2i/f/cnb2QwSP86piHd24VPDjvCc9lyCJ/fX/7cANhdjSebWf/iBRoQGzn3K6ntyKxE99DsrkX+/uI0P3w==} + '@edgeandnode/go@10.2.3': + resolution: {integrity: sha512-D0ouLK91Wr4ZA7Vz+ZF3F3msMxm6NcVi1K3YKBEPuHYn43wt625ON73YQZvTv6VJzZEzfUsxaFcUVbm2qS11tA==} peerDependencies: '@edgeandnode/common': ^7.0.4 - '@edgeandnode/ens': ^2.2.0 - '@edgeandnode/gds': ^6.5.15 + '@edgeandnode/ens': ^2.3.0 + '@edgeandnode/gds': ^6.6.2 '@emotion/react': ^11 '@tanstack/react-query': ^5 graphql: '>=16.9' @@ -1249,8 +1243,8 @@ packages: '@formatjs/intl-localematcher@0.6.1': resolution: {integrity: sha512-ePEgLgVCqi2BBFnTMWPfIghu6FkbZnnBVhO2sSxvLfrdFw7wCHAHiDoM2h4NRgjbaY7+B7HgOLZGkK187pZTZg==} - '@graphprotocol/contracts@7.1.2': - resolution: {integrity: sha512-t8o0nA+cs5HEKLxjaV0zELBtDLAPm6hoXi0o5tnpw7vigyMPoP92QQkVfbjAt9eMnkC7/AyGRWOMBfAZV9l8Og==} + '@graphprotocol/contracts@7.3.0': + resolution: {integrity: sha512-uEjgrBN4WCkJhSrUi5O64cNbU5OWI7iwy/03Er9n+J7o3WEspizpLJvSGXql8E0XtI0ygBaHBTwJfPo7SUphkg==} '@graphql-typed-document-node/core@3.2.0': resolution: {integrity: sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==} @@ -1444,8 +1438,8 @@ packages: '@types/react': '>=16' react: '>=16' - '@mermaid-js/parser@0.4.0': - resolution: {integrity: sha512-wla8XOWvQAwuqy+gxiZqY+c7FokraOTHRWMsbB4AgRx9Sy7zKslNyejy7E+a77qHfey5GXw/ik3IXv/NHMJgaA==} + '@mermaid-js/parser@0.5.0': + resolution: {integrity: sha512-AiaN7+VjXC+3BYE+GwNezkpjIcCI2qIMB/K4S2/vMWe0q/XJCBbx5+K7iteuz7VyltX9iAK4FmVTvGc9kjOV4w==} '@napi-rs/simple-git-android-arm-eabi@0.1.19': resolution: {integrity: sha512-XryEH/hadZ4Duk/HS/HC/cA1j0RHmqUGey3MsCf65ZS0VrWMqChXM/xlTPWuY5jfCc/rPubHaqI7DZlbexnX/g==} @@ -1541,62 +1535,62 @@ packages: '@next/env@13.5.11': resolution: {integrity: sha512-fbb2C7HChgM7CemdCY+y3N1n8pcTKdqtQLbC7/EQtPdLvlMUT9JX/dBYl8MMZAtYG4uVMyPFHXckb68q/NRwqg==} - '@next/env@14.2.29': - resolution: {integrity: sha512-UzgLR2eBfhKIQt0aJ7PWH7XRPYw7SXz0Fpzdl5THjUnvxy4kfBk9OU4RNPNiETewEEtaBcExNFNn1QWH8wQTjg==} + '@next/env@14.2.30': + resolution: {integrity: sha512-KBiBKrDY6kxTQWGzKjQB7QirL3PiiOkV7KW98leHFjtVRKtft76Ra5qSA/SL75xT44dp6hOcqiiJ6iievLOYug==} '@next/eslint-plugin-next@13.4.9': resolution: {integrity: sha512-nDtGpa992tNyAkT/KmSMy7QkHfNZmGCBYhHtafU97DubqxzNdvLsqRtliQ4FU04CysRCtvP2hg8rRC1sAKUTUA==} - '@next/swc-darwin-arm64@14.2.29': - resolution: {integrity: sha512-wWtrAaxCVMejxPHFb1SK/PVV1WDIrXGs9ki0C/kUM8ubKHQm+3hU9MouUywCw8Wbhj3pewfHT2wjunLEr/TaLA==} + '@next/swc-darwin-arm64@14.2.30': + resolution: {integrity: sha512-EAqfOTb3bTGh9+ewpO/jC59uACadRHM6TSA9DdxJB/6gxOpyV+zrbqeXiFTDy9uV6bmipFDkfpAskeaDcO+7/g==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@next/swc-darwin-x64@14.2.29': - resolution: {integrity: sha512-7Z/jk+6EVBj4pNLw/JQrvZVrAh9Bv8q81zCFSfvTMZ51WySyEHWVpwCEaJY910LyBftv2F37kuDPQm0w9CEXyg==} + '@next/swc-darwin-x64@14.2.30': + resolution: {integrity: sha512-TyO7Wz1IKE2kGv8dwQ0bmPL3s44EKVencOqwIY69myoS3rdpO1NPg5xPM5ymKu7nfX4oYJrpMxv8G9iqLsnL4A==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@next/swc-linux-arm64-gnu@14.2.29': - resolution: {integrity: sha512-o6hrz5xRBwi+G7JFTHc+RUsXo2lVXEfwh4/qsuWBMQq6aut+0w98WEnoNwAwt7hkEqegzvazf81dNiwo7KjITw==} + '@next/swc-linux-arm64-gnu@14.2.30': + resolution: {integrity: sha512-I5lg1fgPJ7I5dk6mr3qCH1hJYKJu1FsfKSiTKoYwcuUf53HWTrEkwmMI0t5ojFKeA6Vu+SfT2zVy5NS0QLXV4Q==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-arm64-musl@14.2.29': - resolution: {integrity: sha512-9i+JEHBOVgqxQ92HHRFlSW1EQXqa/89IVjtHgOqsShCcB/ZBjTtkWGi+SGCJaYyWkr/lzu51NTMCfKuBf7ULNw==} + '@next/swc-linux-arm64-musl@14.2.30': + resolution: {integrity: sha512-8GkNA+sLclQyxgzCDs2/2GSwBc92QLMrmYAmoP2xehe5MUKBLB2cgo34Yu242L1siSkwQkiV4YLdCnjwc/Micw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-x64-gnu@14.2.29': - resolution: {integrity: sha512-B7JtMbkUwHijrGBOhgSQu2ncbCYq9E7PZ7MX58kxheiEOwdkM+jGx0cBb+rN5AeqF96JypEppK6i/bEL9T13lA==} + '@next/swc-linux-x64-gnu@14.2.30': + resolution: {integrity: sha512-8Ly7okjssLuBoe8qaRCcjGtcMsv79hwzn/63wNeIkzJVFVX06h5S737XNr7DZwlsbTBDOyI6qbL2BJB5n6TV/w==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-linux-x64-musl@14.2.29': - resolution: {integrity: sha512-yCcZo1OrO3aQ38B5zctqKU1Z3klOohIxug6qdiKO3Q3qNye/1n6XIs01YJ+Uf+TdpZQ0fNrOQI2HrTLF3Zprnw==} + '@next/swc-linux-x64-musl@14.2.30': + resolution: {integrity: sha512-dBmV1lLNeX4mR7uI7KNVHsGQU+OgTG5RGFPi3tBJpsKPvOPtg9poyav/BYWrB3GPQL4dW5YGGgalwZ79WukbKQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-win32-arm64-msvc@14.2.29': - resolution: {integrity: sha512-WnrfeOEtTVidI9Z6jDLy+gxrpDcEJtZva54LYC0bSKQqmyuHzl0ego+v0F/v2aXq0am67BRqo/ybmmt45Tzo4A==} + '@next/swc-win32-arm64-msvc@14.2.30': + resolution: {integrity: sha512-6MMHi2Qc1Gkq+4YLXAgbYslE1f9zMGBikKMdmQRHXjkGPot1JY3n5/Qrbg40Uvbi8//wYnydPnyvNhI1DMUW1g==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@next/swc-win32-ia32-msvc@14.2.29': - resolution: {integrity: sha512-vkcriFROT4wsTdSeIzbxaZjTNTFKjSYmLd8q/GVH3Dn8JmYjUKOuKXHK8n+lovW/kdcpIvydO5GtN+It2CvKWA==} + '@next/swc-win32-ia32-msvc@14.2.30': + resolution: {integrity: sha512-pVZMnFok5qEX4RT59mK2hEVtJX+XFfak+/rjHpyFh7juiT52r177bfFKhnlafm0UOSldhXjj32b+LZIOdswGTg==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] - '@next/swc-win32-x64-msvc@14.2.29': - resolution: {integrity: sha512-iPPwUEKnVs7pwR0EBLJlwxLD7TTHWS/AoVZx1l9ZQzfQciqaFEr5AlYzA2uB6Fyby1IF18t4PL0nTpB+k4Tzlw==} + '@next/swc-win32-x64-msvc@14.2.30': + resolution: {integrity: sha512-4KCo8hMZXMjpTzs3HOqOGYYwAXymXIy7PEPAXNEcEOyKqkjiDlECumrWziy+JEF0Oi4ILHGxzgQ3YiMGG2t/Lg==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -1612,10 +1606,6 @@ packages: resolution: {integrity: sha512-vnI7V6lFNe0tLAuJMu+2sX+FcL14TaCWy1qiczg1VwRmPrpQCdq5ESXQMqUc2tluRNf6irBXrWbl1mGN8uaU/g==} engines: {node: ^14.21.3 || >=16} - '@noble/curves@1.9.1': - resolution: {integrity: sha512-k11yZxZg+t+gWvBbIswW0yoJlu8cHOC7dhunwOzoWH/mXGBiYyR4YY6hAEK/3EUs4UpB8la1RfdRpeGsFHkWsA==} - engines: {node: ^14.21.3 || >=16} - '@noble/curves@1.9.2': resolution: {integrity: sha512-HxngEd2XUcg9xi20JkwlLCtYwfoFw4JGkuZpT+WlsPD4gB/cxkvTD8fSsoAnphGZhFdZYKeQIPCuFlWPm1uE0g==} engines: {node: ^14.21.3 || >=16} @@ -1654,36 +1644,36 @@ packages: resolution: {integrity: sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==} engines: {node: '>=12.4.0'} - '@nomicfoundation/edr-darwin-arm64@0.11.0': - resolution: {integrity: sha512-aYTVdcSs27XG7ayTzvZ4Yn9z/ABSaUwicrtrYK2NR8IH0ik4N4bWzo/qH8rax6rewVLbHUkGyGYnsy5ZN4iiMw==} + '@nomicfoundation/edr-darwin-arm64@0.11.2': + resolution: {integrity: sha512-/QU0GHeoLFOJp28qK46kkTG849NN/5Qgq9ifKzhqBas1MCqwcdjrUI3raGkvE9SWJevljWd1HdW16fFpxUrzbA==} engines: {node: '>= 18'} - '@nomicfoundation/edr-darwin-x64@0.11.0': - resolution: {integrity: sha512-RxX7UYgvJrfcyT/uHUn44Nsy1XaoW+Q1khKMdHKxeW7BrgIi+Lz+siz3bX5vhSoAnKilDPhIVLrnC8zxQhjR2A==} + '@nomicfoundation/edr-darwin-x64@0.11.2': + resolution: {integrity: sha512-Dam+k00vyYNXCkM7JZGQBm0McNaL6ilbfY8BuIdHU2mpIVO5hpAFk8IQnMnG3FRuXuPJ0JoSTkn1R495T8AKqw==} engines: {node: '>= 18'} - '@nomicfoundation/edr-linux-arm64-gnu@0.11.0': - resolution: {integrity: sha512-J0j+rs0s11FuSipt/ymqrFmpJ7c0FSz1/+FohCIlUXDxFv//+1R/8lkGPjEYFmy8DPpk/iO8mcpqHTGckREbqA==} + '@nomicfoundation/edr-linux-arm64-gnu@0.11.2': + resolution: {integrity: sha512-6Z+hZ61c0v5EPVhCAc/rV36eN20GbPRfcmUeFJ3t+RjdY20EiUQzP85YU0q3AgCuwr410W27pazoBoL73cCPbg==} engines: {node: '>= 18'} - '@nomicfoundation/edr-linux-arm64-musl@0.11.0': - resolution: {integrity: sha512-4r32zkGMN7WT/CMEuW0VjbuEdIeCskHNDMW4SSgQSJOE/N9L1KSLJCSsAbPD3aYE+e4WRDTyOwmuLjeUTcLZKQ==} + '@nomicfoundation/edr-linux-arm64-musl@0.11.2': + resolution: {integrity: sha512-AqC4AI3pR4vSsEcFyW/6rI1q16wEjIRYIR25IJO/EdBmXdsuVZgxsf/kMUCWQhhTuy89RTgIGTbMAQA0+DfSvA==} engines: {node: '>= 18'} - '@nomicfoundation/edr-linux-x64-gnu@0.11.0': - resolution: {integrity: sha512-SmdncQHLYtVNWLIMyGaY6LpAfamzTDe3fxjkirmJv3CWR5tcEyC6LMui/GsIVnJzXeNJBXAzwl8hTUAxHTM6kQ==} + '@nomicfoundation/edr-linux-x64-gnu@0.11.2': + resolution: {integrity: sha512-vz1uiof1ZIi6RnXfHZiAXRgkloLciuYGD1rNDrqm1Pp7Nf0pbxw+e4TBQLoMYKzZn0MYS4u4Fa0AV2S7NjfptQ==} engines: {node: '>= 18'} - '@nomicfoundation/edr-linux-x64-musl@0.11.0': - resolution: {integrity: sha512-w6hUqpn/trwiH6SRuRGysj37LsQVCX5XDCA3Xi81sbOaLhbHrNvK9TXWyZmcuzbdTKQQW6VNywcSxDdOiChcJg==} + '@nomicfoundation/edr-linux-x64-musl@0.11.2': + resolution: {integrity: sha512-ArAbcrWwn+8Ze8JAaA9349N2E7hfs9PYvxDgfhujEH9iVC9XI6L+OhMATPsS3wkOST/+ykxELAF1KT4YjSxcrA==} engines: {node: '>= 18'} - '@nomicfoundation/edr-win32-x64-msvc@0.11.0': - resolution: {integrity: sha512-BLmULjRKoH9BsX+c4Na2ypV7NGeJ+M6Zpqj/faPOwleVscDdSr/IhriyPaXCe8dyfwbge7lWsbekiADtPSnB2Q==} + '@nomicfoundation/edr-win32-x64-msvc@0.11.2': + resolution: {integrity: sha512-GDXBhxy5wlmZYQrTXu9Oh9OPTsi4tCdmHy1z8O9XqdH9wsP674Frh6Fb43yjVoS2Ek1F9yX11nexIrFXSuNyJQ==} engines: {node: '>= 18'} - '@nomicfoundation/edr@0.11.0': - resolution: {integrity: sha512-36WERf8ldvyHR6UAbcYsa+vpbW7tCrJGBwF4gXSsb8+STj1n66Hz85Y/O7B9+8AauX3PhglvV5dKl91tk43mWw==} + '@nomicfoundation/edr@0.11.2': + resolution: {integrity: sha512-JEFMTs5Tju+YiCsv6EO+657O/fvPaQ7bkUCkWqHFYFFbCKH1yh0PeRIaqj5h4z4O16ckxbVpAM676ZFTmvFUGQ==} engines: {node: '>= 18'} '@nomicfoundation/solidity-analyzer-darwin-arm64@0.1.2': @@ -2200,50 +2190,50 @@ packages: '@radix-ui/rect@1.1.1': resolution: {integrity: sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==} - '@react-aria/breadcrumbs@3.5.25': - resolution: {integrity: sha512-c8Ipp7EoFXlPKpOUJne6JlG823KwtqMyFsTpU0LS0DE9IEfnAIKanc5X+kChNmooKHq4V8QNyUxTf8WyBKU9+Q==} + '@react-aria/breadcrumbs@3.5.26': + resolution: {integrity: sha512-jybk2jy3m9KNmTpzJu87C0nkcMcGbZIyotgK1s8st8aUE2aJlxPZrvGuJTO8GUFZn9TKnCg3JjBC8qS9sizKQg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/button@3.13.2': - resolution: {integrity: sha512-iPlSR225CSOit+57SrDfEF3lDuQvjRBYj1HFyGsLk91HfV3vDRgkKiou8uhOHk+B3afGJRwot8/Sr9MvNOfeQg==} + '@react-aria/button@3.13.3': + resolution: {integrity: sha512-Xn7eTssaefNPUydogI1qDf7qQWPmb+hGoS1QiCNBodPlRpVDXxlZSIhOqQFnLWHv5+z5UL+vu+joqlSPYHqOFw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/calendar@3.8.2': - resolution: {integrity: sha512-RXVECPB3gP5SZvfKwlqLKCWEFzJh6AcDQQSRkArlyLyHRAHHcniKO3hW90pRWKmEUSVUAZdoCA6XkRL3dXGYXw==} + '@react-aria/calendar@3.8.3': + resolution: {integrity: sha512-1TAZADcWbfznXzo4oJEqFgX4IE1chZjWsTSJDWr03UEx3XqIJI8GXm+ylOQUiN4j8xqZ7tl4yNuuslKkzoSjMQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/checkbox@3.15.6': - resolution: {integrity: sha512-5OHrrihjCNBRB93KysXfHZBLUSGh43fC3DTfH9LWDxfpo38//VkaDXZezA0zg+a43D3kTq6tOSNgHq3sUk/Q5Q==} + '@react-aria/checkbox@3.15.7': + resolution: {integrity: sha512-L64van+K2ZEmCpx/KeZGHoxdxQvVHgfusFRFYZbh3e7YEtDcShvUrTDVKmZkINqnmuhGTDolFDQq+E8fWEpcRg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/color@3.0.8': - resolution: {integrity: sha512-zGEptdwSCcLS/Z+LARmCyv4ptLIYtLIXHtgFSDAaF5ssY0whMOT0yAmOJz4T4ldnaWbBsLIz9O3PbUzNy83L2A==} + '@react-aria/color@3.0.9': + resolution: {integrity: sha512-dWyK8a3kNii8Yuj1/CQivnVVxsgkV8em+sb0oA29w04t+CFRQywpE2OVV3wZTDzOIVaz3pXx7/X012WoF6d/eQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/combobox@3.12.4': - resolution: {integrity: sha512-RvIEz2JK6Ndi0VhhNPYzfHbvq6rj7o2SwhhrcN5cKPC0lGgTXgHJheTq2kMu7ctO/C+Yx/3d0LQC/fOnbKH8zA==} + '@react-aria/combobox@3.12.5': + resolution: {integrity: sha512-mg9RrOTjxQFPy0BQrlqdp5uUC2pLevIqhZit6OfndmOr7khQ32qepDjXoSwYeeSag/jrokc2cGfXfzOwrgAFaQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/datepicker@3.14.4': - resolution: {integrity: sha512-VoVLqTSttvHE1h8nrF2L7r1SDN0VCv5UtIlYqUxK4Gk/5Z7Pboo7aY2OAhgpycm9ZUfWio/VVAtj6oMoWHjxQw==} + '@react-aria/datepicker@3.14.5': + resolution: {integrity: sha512-TeV/yXEOQ2QOYMxvetWcWUcZN83evmnmG/uSruTdk93e2nZzs227Gg/M95tzgCYRRACCzSzrGujJhNs12Nh7mg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/dialog@3.5.26': - resolution: {integrity: sha512-X4KKf0OPHIje+68I0GRDkIcg+qsrBEQskl72aX7GQy6oNBta3ZTxQJrK2HTYdBDJnr1ADQdxYi+pZ5zPYDjODA==} + '@react-aria/dialog@3.5.27': + resolution: {integrity: sha512-Sp8LWQQYNxkLk2+L0bdWmAd9fz1YIrzvxbHXmAn9Tn6+/4SPnQhkOo+qQwtHFbjqe9fyS7cJZxegXd1RegIFew==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 @@ -2254,32 +2244,32 @@ packages: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/dnd@3.10.0': - resolution: {integrity: sha512-kW8TE4MLiTZJWnXSH+/6HeEtCOP20S+3m0BpToOzZhlpETSWJj6WcTRrM9ygt86v+lD4Vb92aQPdB75NVCbSAg==} + '@react-aria/dnd@3.10.1': + resolution: {integrity: sha512-EWiFbRoWs0zBlBbdPvd7gPyA3B8TPUtMfSUnLBCjwc+N0YaUoizZxW2VYgpAkZYAlVrPYV6n2Gs+98PHKZ8rsg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/focus@3.20.4': - resolution: {integrity: sha512-E9M/kPYvF1fBZpkRXsKqMhvBVEyTY7vmkHeXLJo6tInKQOjYyYs0VeWlnGnxBjQIAH7J7ZKAORfTFQQHyhoueQ==} + '@react-aria/focus@3.20.5': + resolution: {integrity: sha512-JpFtXmWQ0Oca7FcvkqgjSyo6xEP7v3oQOLUId6o0xTvm4AD5W0mU2r3lYrbhsJ+XxdUUX4AVR5473sZZ85kU4A==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/form@3.0.17': - resolution: {integrity: sha512-d7Cic5OGBqI/OMUuHlPrPn6udSvjdpurrrwbnSYzrGlVhDmKLUdrLTtBL8O1MPzluAyW52azqJXSpsjwh288KA==} + '@react-aria/form@3.0.18': + resolution: {integrity: sha512-e4Ktc3NiNwV5dz82zVE7lspYmKwAnGoJfOHgc9MApS7Fy/BEAuVUuLgTjMo1x5me7dY+ADxqrIhbOpifscGGoQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/grid@3.14.1': - resolution: {integrity: sha512-znYb6S97yS36nw0liNFYFPmMyhhiUGvhtSXvkPEEU+bxw94O6jbLNwyJKrlUUSNDW3XINasIIY7EhC66QMbSFw==} + '@react-aria/grid@3.14.2': + resolution: {integrity: sha512-5oS6sLq0DishBvPVsWnxGcUdBRXyFXCj8/n02yJvjbID5Mpjn9JIHUSL4ZCZAO7QGCXpvO3PI40vB2F6QUs2VA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/gridlist@3.13.1': - resolution: {integrity: sha512-tdcKDtzQcvT5U7mBbasiV/uHfwQmkYszyjKUZWigO54YNoz5Zp3RFfS14Mv6NAft2cse8Bj9oEyf8HMUT8KEZA==} + '@react-aria/gridlist@3.13.2': + resolution: {integrity: sha512-mPGhW2+Jke66LJIPrYoAdL5BBiC8iZ9orjoan7TBTCX9Xk87EK1XLm1cTxAylRqGNjnLzy+vp05Zt2fHY4QduA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 @@ -2290,8 +2280,8 @@ packages: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/interactions@3.25.2': - resolution: {integrity: sha512-BWyZXBT4P17b9C9HfOIT2glDFMH9nUCfQF7vZ5FEeXNBudH/8OcSbzyBUG4Dg3XPtkOem5LP59ocaizkl32Tvg==} + '@react-aria/interactions@3.25.3': + resolution: {integrity: sha512-J1bhlrNtjPS/fe5uJQ+0c7/jiXniwa4RQlP+Emjfc/iuqpW2RhbF9ou5vROcLzWIyaW8tVMZ468J68rAs/aZ5A==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 @@ -2308,14 +2298,14 @@ packages: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/link@3.8.2': - resolution: {integrity: sha512-LScn5bRlBrv7yt2y06Ul3vNo8BOYHwZXjk47XCJTdt/QWhuU15oG0sRjJ1OIWgZ96jtW7u6YZ1PQtwX55gl7Dw==} + '@react-aria/link@3.8.3': + resolution: {integrity: sha512-83gS9Bb+FMa4Tae2VQrOxWixqYhqj4MDt4Bn0i3gzsP/sPWr1bwo5DJmXfw16UAXMaccl1rUKSqqHdigqaealw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/listbox@3.14.5': - resolution: {integrity: sha512-6fIIr7KqJyS6+7FzRUT3TJozcImJG38kkPtzEpwhmPzWNDWEu307BOjIMw0AHs+m1pT7wspCzg3KOTppw8S4eg==} + '@react-aria/listbox@3.14.6': + resolution: {integrity: sha512-ZaYpBXiS+nUzxAmeCmXyvDcZECuZi1ZLn5y8uJ4ZFRVqSxqplVHodsQKwKqklmAM3+IVDyQx2WB4/HIKTGg2Bw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 @@ -2323,8 +2313,8 @@ packages: '@react-aria/live-announcer@3.4.3': resolution: {integrity: sha512-nbBmx30tW53Vlbq3BbMxHGbHa7vGE9ItacI+1XAdH2UZDLtdZA5J6U9YC6lokKQCv+aEVO6Zl9YG4yp57YwnGw==} - '@react-aria/menu@3.18.4': - resolution: {integrity: sha512-iLioNOnHhltIq7JtLkeSXA1bFt3rUdUwnc8j20LXlzhDgH/56Xi1sxOCzaGo33mDPT16ANJG4IolVzg0+tnb2g==} + '@react-aria/menu@3.18.5': + resolution: {integrity: sha512-mOQb4PcNvDdFhyqF7nxREwc1YUg+pPTiMNcSHlz/MKFkkUteIQBYfuJJa8i72ooiE55xfYEQhPLjmrLHAOIJ+g==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 @@ -2335,14 +2325,14 @@ packages: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/numberfield@3.11.15': - resolution: {integrity: sha512-iQuXWn6BGneSBZrRURkntfivY9noUiq/JLs9KjtaSm9V0X4THevB9xXQLL0qLJ+n5YHOM6skRyoCRaweYY5IhA==} + '@react-aria/numberfield@3.11.16': + resolution: {integrity: sha512-AGk0BMdHXPP3gSy39UVropyvpNMxAElPGIcicjXXyD/tZdemsgLXUFT2zI4DwE0csFZS8BGgunLWT9VluMF4FQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/overlays@3.27.2': - resolution: {integrity: sha512-lWerY4caK2+AXzdPhUqAov3Di2mSfIKdaEEj+99iXeH85zzs2cbWZRvvCwwVGQ0GprypxETz1jb1Wq/55xDALw==} + '@react-aria/overlays@3.27.3': + resolution: {integrity: sha512-1hawsRI+QiM0TkPNwApNJ2+N49NQTP+48xq0JG8hdEUPChQLDoJ39cvT1sxdg0mnLDzLaAYkZrgfokq9sX6FLA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 @@ -2353,26 +2343,26 @@ packages: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/radio@3.11.4': - resolution: {integrity: sha512-kxML2cuI4/5AlSSzOAwXVXoouvrICxGdWbs0ze0IHaGkw6p3oKa5By6I6tT0+8/Kxy6ZFeCL+l/PU6K/ysAdAA==} + '@react-aria/radio@3.11.5': + resolution: {integrity: sha512-6BjpeTupQnxetfvC2bqIxWUt6USMqNZoKOoOO7mUL7ESF6/Gp8ocutvQn0VnTxU+7OhdrZX5AACPg/qIQYumVw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/searchfield@3.8.5': - resolution: {integrity: sha512-HLHT2xc6USM/SbqFYz2gbREq7IcWfO+845ao/GCxy6Rx8eGD3OV09jgd+JlcSNJb2WiTpKhkSeX3wf7VgzPw2g==} + '@react-aria/searchfield@3.8.6': + resolution: {integrity: sha512-fEhNOtOV5yRZ8hkWmFO5Mh8nq63/ePun2dUMLAiW1sCQXTUpN9Oo+T4vsEUabuZ25mHvqgVoCVhAFdMbvZ+W+A==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/select@3.15.6': - resolution: {integrity: sha512-r/XU5PJY/V8LTklaiO7n3BDG9gVg/Dp3p7IwgGCYUbLuF9+8yMh858teOEJr3FYKLPr/nZLZQE08oJuADkCLEw==} + '@react-aria/select@3.15.7': + resolution: {integrity: sha512-b1PpanLblnXgrvIeYPkL9ELdeE3GQXwoRJLNv9DSKSAyBVx+pm6+4BtzngOBdBidRCcOGEBEYxuUW8hMXjFB8w==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/selection@3.24.2': - resolution: {integrity: sha512-YIdCYe1yXXfbZ0snUMWrQpOxtJO0+eHHp3+PSqZ/dyvLqMlTlYnOv2j5lc36sN0r1YWfN8OEpxzK3jHdD4M6yA==} + '@react-aria/selection@3.24.3': + resolution: {integrity: sha512-QznlHCUcjFgVALUIVBK4SWJd6osaU9lVaZgU4M8uemoIfOHqnBY3zThkQvEhcw/EJ2RpuYYLPOBYZBnk1knD5A==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 @@ -2383,8 +2373,8 @@ packages: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/slider@3.7.20': - resolution: {integrity: sha512-ciRfI0ya89pm4R+2RE7vLhu5OjdsAQfzghVI5Eh5AHpwjajMJ41O4Vkyt2ci5KTcjwg80CFftAWmF02w2hKR5Q==} + '@react-aria/slider@3.7.21': + resolution: {integrity: sha512-eWu69KnQ7qCmpYBEkgGLjIuKfFqoHu2W6r9d7ys0ZmX81HPj9DhatGpEgHlnjRfCeSl9wL5h2FY9wnIio82cbg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 @@ -2401,62 +2391,62 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/switch@3.7.4': - resolution: {integrity: sha512-6Ue6GXBGMPc5uNwu6A4XHOEK5n/3OmgW/kgCmFVi2dh4QqkASSdadaizS/2uENWfgKTlEpd0Wy3PSfpubL+hCg==} + '@react-aria/switch@3.7.5': + resolution: {integrity: sha512-GV9rFYf4wRHAh9tkhptvm3uOflKcQHdgZh+eGpSAHyq2iTq0j2nEhlmtFordpcJgC4XWro7TXLNltfqUqVHtkw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/table@3.17.4': - resolution: {integrity: sha512-zhqrt6Uk66wrgaIHrPUv3nguVMGMnPtqUmp0K2gibhNucN0iJ6zILoaq8vMmFH+9PmUqoiPJXq18czs2CluT6Q==} + '@react-aria/table@3.17.5': + resolution: {integrity: sha512-Q9HDr2EAhoah7HFIT6XxOOOv2fiAs0agwQQd3d1w6jqgyu9m20lM/jxcSwcCFj2O7FPKHfapSAijHDZZoc4Shg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/tabs@3.10.4': - resolution: {integrity: sha512-aXY83zqLStlf/v8vP2OvlrLsujCNWGqfL3hMVDF1PNqRJGllMejzkzbZNf4fUQDTX+e2zNDv6SH4IRJ4k9sKlw==} + '@react-aria/tabs@3.10.5': + resolution: {integrity: sha512-ddmGPikXW+27W2Rx0VuEwwGJVLTo68QkNbSl8R+TEM0EUIAJo3nwHzAlQhuo5Tcb1PdK7biTjO1dyI4pno2/0Q==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/tag@3.6.1': - resolution: {integrity: sha512-oTEDqOejjltr64ADpgMA3eB/G4bJ2Y9TlQwW33l6XWAjtKKZScBhGrf9l10NTQphZf4QxMnucIHo8IV2eKSmjg==} + '@react-aria/tag@3.6.2': + resolution: {integrity: sha512-xO33FU0bZSpZ3Bw7bnJz7+Me0daVLJrn5dAllf18Mmf9T2cEr63Gg4AL4nR+rj6NLSq0aH8QyDtRGNqXJjo5SQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/textfield@3.17.4': - resolution: {integrity: sha512-dcQQKVgH/zv3wExcmpH7yMA2d4oPO3JF9L1HdwNvPHScnfbr404ZVEKjrIlxEvzq7V5yKky5q8171jmp+YOPyw==} + '@react-aria/textfield@3.17.5': + resolution: {integrity: sha512-HFdvqd3Mdp6WP7uYAWD64gRrL1D4Khi+Fm3dIHBhm1ANV0QjYkphJm4DYNDq/MXCZF46+CZNiOWEbL/aeviykA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/toast@3.0.4': - resolution: {integrity: sha512-oH1WZfwdaryiggqxu1r1Jq1/fF8n9AVD3euamkJmXq5/t9IJUYLzct4w54QqjQ0KhtbHp+7n55QvvhZ9cW3XEg==} + '@react-aria/toast@3.0.5': + resolution: {integrity: sha512-uhwiZqPy6hqucBUL7z6uUZjAJ/ou3bNdTjZlXS+zbcm+T0dsjKDfzNkaebyZY7AX3cYkFCaRjc3N6omXwoAviw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/toggle@3.11.4': - resolution: {integrity: sha512-RwWyFiM+dBsiulT1ziGdG5+cy/F/7hFVb1Ddyc90HNLqRuX2sAX3ysm0YmiiNpnHwGQR/kPd1ulTSqQ+ps9wiQ==} + '@react-aria/toggle@3.11.5': + resolution: {integrity: sha512-8+Evk/JVMQ25PNhbnHUvsAK99DAjnCWMdSBNswJ1sWseKCYQzBXsNkkF6Dl/FlSkfDBFAaRHkX9JUz02wehb9A==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/toolbar@3.0.0-beta.17': - resolution: {integrity: sha512-YGLDOATMla9Y7Yk2P8qK3zcTrxQClf2ZLS8Wj14RY4le/r6F2rGJqkGhVFPyoNAtwsRr4bzD7CGERe4NUAPrqQ==} + '@react-aria/toolbar@3.0.0-beta.18': + resolution: {integrity: sha512-P1fXhmTRBK4YvPQDzCY3XoZl+HiBADgvQ89jszxJ2jD4Qzs/E096ttCc+otZnbvRcoU27IxC2vWFInqK/bP31g==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/tooltip@3.8.4': - resolution: {integrity: sha512-WwooDvXb64mGwZUZQj4tYcJEFSXLIxDywT97K9U4fLUhrNcQ8KdxdhPjyPOEXxscPfdJDyKKckhRiKl91UoKsg==} + '@react-aria/tooltip@3.8.5': + resolution: {integrity: sha512-spGAuHHNkiqAfyOl4JWzKEK642KC1oQylioYg+LKCq2avUyaDqFlRx2JrC4a6nt3BV6E5/cJUMV9K7gMRApd5Q==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/tree@3.1.0': - resolution: {integrity: sha512-GBg01P04fLY16ZHLYcP9nLGis2MGQSpiP8rMG0t5jqddJdx+v8IL28f9mcHw+NSRgZm28NHQThTkH31SUxXppQ==} + '@react-aria/tree@3.1.1': + resolution: {integrity: sha512-9LIe9unStA/9HHX6idHdbxMJLjebFP9mngIjoBgbWSNaYx3oH1X3Ei2Q9qHmimebtBagEZgSjxy7M+RcEqFhlw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 @@ -2467,8 +2457,8 @@ packages: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/visually-hidden@3.8.24': - resolution: {integrity: sha512-vhGhALs/PGdTs/7GD2hsy7CF1LBF9QlL57HkRSu8kfiuiA7rqRTqYg6q723OvaFsspj3DCxP2MLQhvvZSWe7Ng==} + '@react-aria/visually-hidden@3.8.25': + resolution: {integrity: sha512-9tRRFV1YMLuDId9E8PeUf0xy0KmQBoP8y/bm0PKWzXOqLOVmp/+kop9rwsjC7J6ppbBnlak7XCXTc7GoSFOCRA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 @@ -2775,103 +2765,103 @@ packages: resolution: {integrity: sha512-FqALmHI8D4o6lk/LRWDnhw95z5eO+eAa6ORjVg09YRR7BkcM6oPHU9uyC0gtQG5vpFLvgpeU4+zEAz2H8APHNw==} engines: {node: '>= 10'} - '@rollup/rollup-android-arm-eabi@4.42.0': - resolution: {integrity: sha512-gldmAyS9hpj+H6LpRNlcjQWbuKUtb94lodB9uCz71Jm+7BxK1VIOo7y62tZZwxhA7j1ylv/yQz080L5WkS+LoQ==} + '@rollup/rollup-android-arm-eabi@4.44.0': + resolution: {integrity: sha512-xEiEE5oDW6tK4jXCAyliuntGR+amEMO7HLtdSshVuhFnKTYoeYMyXQK7pLouAJJj5KHdwdn87bfHAR2nSdNAUA==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.42.0': - resolution: {integrity: sha512-bpRipfTgmGFdCZDFLRvIkSNO1/3RGS74aWkJJTFJBH7h3MRV4UijkaEUeOMbi9wxtxYmtAbVcnMtHTPBhLEkaw==} + '@rollup/rollup-android-arm64@4.44.0': + resolution: {integrity: sha512-uNSk/TgvMbskcHxXYHzqwiyBlJ/lGcv8DaUfcnNwict8ba9GTTNxfn3/FAoFZYgkaXXAdrAA+SLyKplyi349Jw==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.42.0': - resolution: {integrity: sha512-JxHtA081izPBVCHLKnl6GEA0w3920mlJPLh89NojpU2GsBSB6ypu4erFg/Wx1qbpUbepn0jY4dVWMGZM8gplgA==} + '@rollup/rollup-darwin-arm64@4.44.0': + resolution: {integrity: sha512-VGF3wy0Eq1gcEIkSCr8Ke03CWT+Pm2yveKLaDvq51pPpZza3JX/ClxXOCmTYYq3us5MvEuNRTaeyFThCKRQhOA==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.42.0': - resolution: {integrity: sha512-rv5UZaWVIJTDMyQ3dCEK+m0SAn6G7H3PRc2AZmExvbDvtaDc+qXkei0knQWcI3+c9tEs7iL/4I4pTQoPbNL2SA==} + '@rollup/rollup-darwin-x64@4.44.0': + resolution: {integrity: sha512-fBkyrDhwquRvrTxSGH/qqt3/T0w5Rg0L7ZIDypvBPc1/gzjJle6acCpZ36blwuwcKD/u6oCE/sRWlUAcxLWQbQ==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.42.0': - resolution: {integrity: sha512-fJcN4uSGPWdpVmvLuMtALUFwCHgb2XiQjuECkHT3lWLZhSQ3MBQ9pq+WoWeJq2PrNxr9rPM1Qx+IjyGj8/c6zQ==} + '@rollup/rollup-freebsd-arm64@4.44.0': + resolution: {integrity: sha512-u5AZzdQJYJXByB8giQ+r4VyfZP+walV+xHWdaFx/1VxsOn6eWJhK2Vl2eElvDJFKQBo/hcYIBg/jaKS8ZmKeNQ==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.42.0': - resolution: {integrity: sha512-CziHfyzpp8hJpCVE/ZdTizw58gr+m7Y2Xq5VOuCSrZR++th2xWAz4Nqk52MoIIrV3JHtVBhbBsJcAxs6NammOQ==} + '@rollup/rollup-freebsd-x64@4.44.0': + resolution: {integrity: sha512-qC0kS48c/s3EtdArkimctY7h3nHicQeEUdjJzYVJYR3ct3kWSafmn6jkNCA8InbUdge6PVx6keqjk5lVGJf99g==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.42.0': - resolution: {integrity: sha512-UsQD5fyLWm2Fe5CDM7VPYAo+UC7+2Px4Y+N3AcPh/LdZu23YcuGPegQly++XEVaC8XUTFVPscl5y5Cl1twEI4A==} + '@rollup/rollup-linux-arm-gnueabihf@4.44.0': + resolution: {integrity: sha512-x+e/Z9H0RAWckn4V2OZZl6EmV0L2diuX3QB0uM1r6BvhUIv6xBPL5mrAX2E3e8N8rEHVPwFfz/ETUbV4oW9+lQ==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.42.0': - resolution: {integrity: sha512-/i8NIrlgc/+4n1lnoWl1zgH7Uo0XK5xK3EDqVTf38KvyYgCU/Rm04+o1VvvzJZnVS5/cWSd07owkzcVasgfIkQ==} + '@rollup/rollup-linux-arm-musleabihf@4.44.0': + resolution: {integrity: sha512-1exwiBFf4PU/8HvI8s80icyCcnAIB86MCBdst51fwFmH5dyeoWVPVgmQPcKrMtBQ0W5pAs7jBCWuRXgEpRzSCg==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.42.0': - resolution: {integrity: sha512-eoujJFOvoIBjZEi9hJnXAbWg+Vo1Ov8n/0IKZZcPZ7JhBzxh2A+2NFyeMZIRkY9iwBvSjloKgcvnjTbGKHE44Q==} + '@rollup/rollup-linux-arm64-gnu@4.44.0': + resolution: {integrity: sha512-ZTR2mxBHb4tK4wGf9b8SYg0Y6KQPjGpR4UWwTFdnmjB4qRtoATZ5dWn3KsDwGa5Z2ZBOE7K52L36J9LueKBdOQ==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.42.0': - resolution: {integrity: sha512-/3NrcOWFSR7RQUQIuZQChLND36aTU9IYE4j+TB40VU78S+RA0IiqHR30oSh6P1S9f9/wVOenHQnacs/Byb824g==} + '@rollup/rollup-linux-arm64-musl@4.44.0': + resolution: {integrity: sha512-GFWfAhVhWGd4r6UxmnKRTBwP1qmModHtd5gkraeW2G490BpFOZkFtem8yuX2NyafIP/mGpRJgTJ2PwohQkUY/Q==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-loongarch64-gnu@4.42.0': - resolution: {integrity: sha512-O8AplvIeavK5ABmZlKBq9/STdZlnQo7Sle0LLhVA7QT+CiGpNVe197/t8Aph9bhJqbDVGCHpY2i7QyfEDDStDg==} + '@rollup/rollup-linux-loongarch64-gnu@4.44.0': + resolution: {integrity: sha512-xw+FTGcov/ejdusVOqKgMGW3c4+AgqrfvzWEVXcNP6zq2ue+lsYUgJ+5Rtn/OTJf7e2CbgTFvzLW2j0YAtj0Gg==} cpu: [loong64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.42.0': - resolution: {integrity: sha512-6Qb66tbKVN7VyQrekhEzbHRxXXFFD8QKiFAwX5v9Xt6FiJ3BnCVBuyBxa2fkFGqxOCSGGYNejxd8ht+q5SnmtA==} + '@rollup/rollup-linux-powerpc64le-gnu@4.44.0': + resolution: {integrity: sha512-bKGibTr9IdF0zr21kMvkZT4K6NV+jjRnBoVMt2uNMG0BYWm3qOVmYnXKzx7UhwrviKnmK46IKMByMgvpdQlyJQ==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.42.0': - resolution: {integrity: sha512-KQETDSEBamQFvg/d8jajtRwLNBlGc3aKpaGiP/LvEbnmVUKlFta1vqJqTrvPtsYsfbE/DLg5CC9zyXRX3fnBiA==} + '@rollup/rollup-linux-riscv64-gnu@4.44.0': + resolution: {integrity: sha512-vV3cL48U5kDaKZtXrti12YRa7TyxgKAIDoYdqSIOMOFBXqFj2XbChHAtXquEn2+n78ciFgr4KIqEbydEGPxXgA==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-riscv64-musl@4.42.0': - resolution: {integrity: sha512-qMvnyjcU37sCo/tuC+JqeDKSuukGAd+pVlRl/oyDbkvPJ3awk6G6ua7tyum02O3lI+fio+eM5wsVd66X0jQtxw==} + '@rollup/rollup-linux-riscv64-musl@4.44.0': + resolution: {integrity: sha512-TDKO8KlHJuvTEdfw5YYFBjhFts2TR0VpZsnLLSYmB7AaohJhM8ctDSdDnUGq77hUh4m/djRafw+9zQpkOanE2Q==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.42.0': - resolution: {integrity: sha512-I2Y1ZUgTgU2RLddUHXTIgyrdOwljjkmcZ/VilvaEumtS3Fkuhbw4p4hgHc39Ypwvo2o7sBFNl2MquNvGCa55Iw==} + '@rollup/rollup-linux-s390x-gnu@4.44.0': + resolution: {integrity: sha512-8541GEyktXaw4lvnGp9m84KENcxInhAt6vPWJ9RodsB/iGjHoMB2Pp5MVBCiKIRxrxzJhGCxmNzdu+oDQ7kwRA==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.42.0': - resolution: {integrity: sha512-Gfm6cV6mj3hCUY8TqWa63DB8Mx3NADoFwiJrMpoZ1uESbK8FQV3LXkhfry+8bOniq9pqY1OdsjFWNsSbfjPugw==} + '@rollup/rollup-linux-x64-gnu@4.44.0': + resolution: {integrity: sha512-iUVJc3c0o8l9Sa/qlDL2Z9UP92UZZW1+EmQ4xfjTc1akr0iUFZNfxrXJ/R1T90h/ILm9iXEY6+iPrmYB3pXKjw==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.42.0': - resolution: {integrity: sha512-g86PF8YZ9GRqkdi0VoGlcDUb4rYtQKyTD1IVtxxN4Hpe7YqLBShA7oHMKU6oKTCi3uxwW4VkIGnOaH/El8de3w==} + '@rollup/rollup-linux-x64-musl@4.44.0': + resolution: {integrity: sha512-PQUobbhLTQT5yz/SPg116VJBgz+XOtXt8D1ck+sfJJhuEsMj2jSej5yTdp8CvWBSceu+WW+ibVL6dm0ptG5fcA==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.42.0': - resolution: {integrity: sha512-+axkdyDGSp6hjyzQ5m1pgcvQScfHnMCcsXkx8pTgy/6qBmWVhtRVlgxjWwDp67wEXXUr0x+vD6tp5W4x6V7u1A==} + '@rollup/rollup-win32-arm64-msvc@4.44.0': + resolution: {integrity: sha512-M0CpcHf8TWn+4oTxJfh7LQuTuaYeXGbk0eageVjQCKzYLsajWS/lFC94qlRqOlyC2KvRT90ZrfXULYmukeIy7w==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.42.0': - resolution: {integrity: sha512-F+5J9pelstXKwRSDq92J0TEBXn2nfUrQGg+HK1+Tk7VOL09e0gBqUHugZv7SW4MGrYj41oNCUe3IKCDGVlis2g==} + '@rollup/rollup-win32-ia32-msvc@4.44.0': + resolution: {integrity: sha512-3XJ0NQtMAXTWFW8FqZKcw3gOQwBtVWP/u8TpHP3CRPXD7Pd6s8lLdH3sHWh8vqKCyyiI8xW5ltJScQmBU9j7WA==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.42.0': - resolution: {integrity: sha512-LpHiJRwkaVz/LqjHjK8LCi8osq7elmpwujwbXKNW88bM8eeGxavJIKKjkjpMHAh/2xfnrt1ZSnhTv41WYUHYmA==} + '@rollup/rollup-win32-x64-msvc@4.44.0': + resolution: {integrity: sha512-Q2Mgwt+D8hd5FIPUuPDsvPR7Bguza6yTkJxspDGkZj7tBRn2y4KSWYuIXpftFSjBra76TbKerCV7rgFPQrn+wQ==} cpu: [x64] os: [win32] @@ -2942,32 +2932,32 @@ packages: '@shikijs/core@1.29.2': resolution: {integrity: sha512-vju0lY9r27jJfOY4Z7+Rt/nIOjzJpZ3y+nYpqtUZInVoXQ/TJZcfGnNOGnKjFdVZb8qexiCuSlZRKcGfhhTTZQ==} - '@shikijs/core@3.6.0': - resolution: {integrity: sha512-9By7Xb3olEX0o6UeJyPLI1PE1scC4d3wcVepvtv2xbuN9/IThYN4Wcwh24rcFeASzPam11MCq8yQpwwzCgSBRw==} + '@shikijs/core@3.7.0': + resolution: {integrity: sha512-yilc0S9HvTPyahHpcum8eonYrQtmGTU0lbtwxhA6jHv4Bm1cAdlPFRCJX4AHebkCm75aKTjjRAW+DezqD1b/cg==} '@shikijs/engine-javascript@1.29.2': resolution: {integrity: sha512-iNEZv4IrLYPv64Q6k7EPpOCE/nuvGiKl7zxdq0WFuRPF5PAE9PRo2JGq/d8crLusM59BRemJ4eOqrFrC4wiQ+A==} - '@shikijs/engine-javascript@3.6.0': - resolution: {integrity: sha512-7YnLhZG/TU05IHMG14QaLvTW/9WiK8SEYafceccHUSXs2Qr5vJibUwsDfXDLmRi0zHdzsxrGKpSX6hnqe0k8nA==} + '@shikijs/engine-javascript@3.7.0': + resolution: {integrity: sha512-0t17s03Cbv+ZcUvv+y33GtX75WBLQELgNdVghnsdhTgU3hVcWcMsoP6Lb0nDTl95ZJfbP1mVMO0p3byVh3uuzA==} '@shikijs/engine-oniguruma@1.29.2': resolution: {integrity: sha512-7iiOx3SG8+g1MnlzZVDYiaeHe7Ez2Kf2HrJzdmGwkRisT7r4rak0e655AcM/tF9JG/kg5fMNYlLLKglbN7gBqA==} - '@shikijs/engine-oniguruma@3.6.0': - resolution: {integrity: sha512-nmOhIZ9yT3Grd+2plmW/d8+vZ2pcQmo/UnVwXMUXAKTXdi+LK0S08Ancrz5tQQPkxvjBalpMW2aKvwXfelauvA==} + '@shikijs/engine-oniguruma@3.7.0': + resolution: {integrity: sha512-5BxcD6LjVWsGu4xyaBC5bu8LdNgPCVBnAkWTtOCs/CZxcB22L8rcoWfv7Hh/3WooVjBZmFtyxhgvkQFedPGnFw==} '@shikijs/langs@1.29.2': resolution: {integrity: sha512-FIBA7N3LZ+223U7cJDUYd5shmciFQlYkFXlkKVaHsCPgfVLiO+e12FmQE6Tf9vuyEsFe3dIl8qGWKXgEHL9wmQ==} - '@shikijs/langs@3.6.0': - resolution: {integrity: sha512-IdZkQJaLBu1LCYCwkr30hNuSDfllOT8RWYVZK1tD2J03DkiagYKRxj/pDSl8Didml3xxuyzUjgtioInwEQM/TA==} + '@shikijs/langs@3.7.0': + resolution: {integrity: sha512-1zYtdfXLr9xDKLTGy5kb7O0zDQsxXiIsw1iIBcNOO8Yi5/Y1qDbJ+0VsFoqTlzdmneO8Ij35g7QKF8kcLyznCQ==} '@shikijs/themes@1.29.2': resolution: {integrity: sha512-i9TNZlsq4uoyqSbluIcZkmPL9Bfi3djVxRnofUHwvx/h6SRW3cwgBC5SML7vsDcWyukY0eCzVN980rqP6qNl9g==} - '@shikijs/themes@3.6.0': - resolution: {integrity: sha512-Fq2j4nWr1DF4drvmhqKq8x5vVQ27VncF8XZMBuHuQMZvUSS3NBgpqfwz/FoGe36+W6PvniZ1yDlg2d4kmYDU6w==} + '@shikijs/themes@3.7.0': + resolution: {integrity: sha512-VJx8497iZPy5zLiiCTSIaOChIcKQwR0FebwE9S3rcN0+J/GTWwQ1v/bqhTbpbY3zybPKeO8wdammqkpXc4NVjQ==} '@shikijs/twoslash@1.29.2': resolution: {integrity: sha512-2S04ppAEa477tiaLfGEn1QJWbZUmbk8UoPbAEw4PifsrxkBXtAtOflIZJNtuCwz8ptc/TPxy7CO7gW4Uoi6o/g==} @@ -2975,8 +2965,8 @@ packages: '@shikijs/types@1.29.2': resolution: {integrity: sha512-VJjK0eIijTZf0QSTODEXCqinjBn0joAHQ+aPSBzrv4O2d/QSbsMw+ZeSRx03kV34Hy7NzUvV/7NqfYGRLrASmw==} - '@shikijs/types@3.6.0': - resolution: {integrity: sha512-cLWFiToxYu0aAzJqhXTQsFiJRTFDAGl93IrMSBNaGSzs7ixkLfdG6pH11HipuWFGW5vyx4X47W8HDQ7eSrmBUg==} + '@shikijs/types@3.7.0': + resolution: {integrity: sha512-MGaLeaRlSWpnP0XSAum3kP3a8vtcTsITqoEPYdt3lQG3YCdQH4DnEhodkYcNMcU0uW0RffhoD1O3e0vG5eSBBg==} '@shikijs/vscode-textmate@10.0.2': resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} @@ -3048,22 +3038,22 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - '@tanstack/query-core@5.80.6': - resolution: {integrity: sha512-nl7YxT/TAU+VTf+e2zTkObGTyY8YZBMnbgeA1ee66lIVqzKlYursAII6z5t0e6rXgwUMJSV4dshBTNacNpZHbQ==} + '@tanstack/query-core@5.81.2': + resolution: {integrity: sha512-QLYkPdrudoMATDFa3MiLEwRhNnAlzHWDf0LKaXUqJd0/+QxN8uTPi7bahRlxoAyH0UbLMBdeDbYzWALj7THOtw==} - '@tanstack/react-query@5.80.6': - resolution: {integrity: sha512-izX+5CnkpON3NQGcEm3/d7LfFQNo9ZpFtX2QsINgCYK9LT2VCIdi8D3bMaMSNhrAJCznRoAkFic76uvLroALBw==} + '@tanstack/react-query@5.81.2': + resolution: {integrity: sha512-pe8kFlTrL2zFLlcAj2kZk9UaYYHDk9/1hg9EBaoO3cxDhOZf1FRGJeziSXKrVZyxIfs7b3aoOj/bw7Lie0mDUg==} peerDependencies: react: ^18 || ^19 - '@tanstack/react-virtual@3.13.10': - resolution: {integrity: sha512-nvrzk4E9mWB4124YdJ7/yzwou7IfHxlSef6ugCFcBfRmsnsma3heciiiV97sBNxyc3VuwtZvmwXd0aB5BpucVw==} + '@tanstack/react-virtual@3.13.11': + resolution: {integrity: sha512-u5EaOSJOq08T9NXFuDopMdxZBNDFuEMohIFFU45fBYDXXh9SjYdbpNq1OLFSOpQnDRPjqgmY96ipZTkzom9t9Q==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - '@tanstack/virtual-core@3.13.10': - resolution: {integrity: sha512-sPEDhXREou5HyZYqSWIqdU580rsF6FGeN7vpzijmP3KTiOGjOMZASz4Y6+QKjiFQwhWrR58OP8izYaNGVxvViA==} + '@tanstack/virtual-core@3.13.11': + resolution: {integrity: sha512-ORL6UyuZJ0D9X33LDR4TcgcM+K2YiS2j4xbvH1vnhhObwR1Z4dKwPTL/c0kj2Yeb4Yp2lBv1wpyVaqlohk8zpg==} '@theguild/remark-mermaid@0.1.3': resolution: {integrity: sha512-2FjVlaaKXK7Zj7UJAgOVTyaahn/3/EAfqYhyXg0BfDBVUl+lXcoIWRaxzqfnDr2rv8ax6GsC5mNh6hAaT86PDw==} @@ -3233,9 +3223,6 @@ packages: '@types/estree-jsx@1.0.5': resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} - '@types/estree@1.0.7': - resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==} - '@types/estree@1.0.8': resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} @@ -3260,8 +3247,8 @@ packages: '@types/katex@0.16.7': resolution: {integrity: sha512-HMwFiRujE5PjrgwHQ25+bsLJgowjGjm5Z8FVSf0N6PwgJrwxH0QxzHYDcKsTfV3wva0vzrpqMTJS2jXPr5BMEQ==} - '@types/lodash@4.17.17': - resolution: {integrity: sha512-RRVJ+J3J+WmyOTqnz3PiBLA501eKwXl2noseKOrNo/6+XEHjTAxO4xHvxQB6QuNm+s4WRbn6rSiap8+EA+ykFQ==} + '@types/lodash@4.17.19': + resolution: {integrity: sha512-NYqRyg/hIQrYPT9lbOeYc3kIRabJDn/k4qQHIXUpx88CBDww2fD15Sg5kbXlW86zm2XEW4g0QxkTI3/Kfkc7xQ==} '@types/lru-cache@5.1.1': resolution: {integrity: sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==} @@ -3281,8 +3268,8 @@ packages: '@types/nlcst@2.0.3': resolution: {integrity: sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA==} - '@types/node@22.15.31': - resolution: {integrity: sha512-jnVe5ULKl6tijxUhvQeNbQG/84fHfg+yMak02cT8QVhBx/F05rAVxCGBYYTh2EKz22D6JF5ktXuNwdx7b9iEGw==} + '@types/node@22.15.33': + resolution: {integrity: sha512-wzoocdnnpSxZ+6CjW4ADCK1jVmd1S/J3ArNWfn8FDDQtRm8dkDg7TA+mvek2wNrfCgwuZxqEOiB9B1XCJ6+dbw==} '@types/parse-json@4.0.2': resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} @@ -3319,6 +3306,10 @@ packages: '@types/unist@3.0.3': resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} + '@types/vfile@4.0.0': + resolution: {integrity: sha512-eleP0/Cz8uVWxARDLi3Axq2+fDdN4ibAXoC6Pv8p6s7znXaUL7XvhgeIhjCiNMnvlLNP+tmCLd+RuCryGgmtEg==} + deprecated: This is a stub types definition. vfile provides its own type definitions, so you do not need this installed. + '@typescript-eslint/eslint-plugin@6.21.0': resolution: {integrity: sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==} engines: {node: ^16.0.0 || >=18.0.0} @@ -3422,88 +3413,98 @@ packages: engines: {node: '>=10'} deprecated: Please upgrade to 1.0.1 - '@unrs/resolver-binding-darwin-arm64@1.7.13': - resolution: {integrity: sha512-LIKeCzNSkTWwGHjtiUIfvS96+7kpuyrKq2pzw/0XT2S8ykczj40Hh27oLTbXguCX8tGrCoaD2yXxzwqMMhAzhA==} + '@unrs/resolver-binding-android-arm-eabi@1.9.1': + resolution: {integrity: sha512-dd7yIp1hfJFX9ZlVLQRrh/Re9WMUHHmF9hrKD1yIvxcyNr2BhQ3xc1upAVhy8NijadnCswAxWQu8MkkSMC1qXQ==} + cpu: [arm] + os: [android] + + '@unrs/resolver-binding-android-arm64@1.9.1': + resolution: {integrity: sha512-EzUPcMFtDVlo5yrbzMqUsGq3HnLXw+3ZOhSd7CUaDmbTtnrzM+RO2ntw2dm2wjbbc5djWj3yX0wzbbg8pLhx8g==} + cpu: [arm64] + os: [android] + + '@unrs/resolver-binding-darwin-arm64@1.9.1': + resolution: {integrity: sha512-nB+dna3q4kOleKFcSZJ/wDXIsAd1kpMO9XrVAt8tG3RDWJ6vi+Ic6bpz4cmg5tWNeCfHEY4KuqJCB+pKejPEmQ==} cpu: [arm64] os: [darwin] - '@unrs/resolver-binding-darwin-x64@1.7.13': - resolution: {integrity: sha512-GB5G3qUNrdo2l6xaZehpz1ln4wCQ75tr51HZ8OQEcX6XkBIFVL9E4ikCZvCmRmUgKGR+zP5ogyFib7ZbIMWKWA==} + '@unrs/resolver-binding-darwin-x64@1.9.1': + resolution: {integrity: sha512-aKWHCrOGaCGwZcekf3TnczQoBxk5w//W3RZ4EQyhux6rKDwBPgDU9Y2yGigCV1Z+8DWqZgVGQi+hdpnlSy3a1w==} cpu: [x64] os: [darwin] - '@unrs/resolver-binding-freebsd-x64@1.7.13': - resolution: {integrity: sha512-rb8gzoBgqVhDkQiKaq+MrFPhNK3x8XkSFhgU55LfgOa5skv7KIdM3dELKzQVNZNlY49DuZmm0FsEfHK5xPKKiA==} + '@unrs/resolver-binding-freebsd-x64@1.9.1': + resolution: {integrity: sha512-4dIEMXrXt0UqDVgrsUd1I+NoIzVQWXy/CNhgpfS75rOOMK/4Abn0Mx2M2gWH4Mk9+ds/ASAiCmqoUFynmMY5hA==} cpu: [x64] os: [freebsd] - '@unrs/resolver-binding-linux-arm-gnueabihf@1.7.13': - resolution: {integrity: sha512-bqdzngbTGzhsqhTV3SWECyZUAyvtewKtrCW4E8QPcK6yHSaN0k1h9gKwNOBxFwIqkQRsAibpm18XDum8M5AiCw==} + '@unrs/resolver-binding-linux-arm-gnueabihf@1.9.1': + resolution: {integrity: sha512-vtvS13IXPs1eE8DuS/soiosqMBeyh50YLRZ+p7EaIKAPPeevRnA9G/wu/KbVt01ZD5qiGjxS+CGIdVC7I6gTOw==} cpu: [arm] os: [linux] - '@unrs/resolver-binding-linux-arm-musleabihf@1.7.13': - resolution: {integrity: sha512-vkoL3DSS5tsUNLhNtBJWaqDJNNEQsMCr0o2N02sLCSpe5S8TQHz+klQT42Qgj4PqATMwnG3OF0QQ5BH0oAKIPg==} + '@unrs/resolver-binding-linux-arm-musleabihf@1.9.1': + resolution: {integrity: sha512-BfdnN6aZ7NcX8djW8SR6GOJc+K+sFhWRF4vJueVE0vbUu5N1bLnBpxJg1TGlhSyo+ImC4SR0jcNiKN0jdoxt+A==} cpu: [arm] os: [linux] - '@unrs/resolver-binding-linux-arm64-gnu@1.7.13': - resolution: {integrity: sha512-uNpLKxlDF+NF6aUztbAVhhFSF65zf/6QEfk5NifUgYFbpBObzvMnl2ydEsXV96spwPcmeNTpG9byvq+Twwd3HQ==} + '@unrs/resolver-binding-linux-arm64-gnu@1.9.1': + resolution: {integrity: sha512-Jhge7lFtH0QqfRz2PyJjJXWENqywPteITd+nOS0L6AhbZli+UmEyGBd2Sstt1c+l9C+j/YvKTl9wJo9PPmsFNg==} cpu: [arm64] os: [linux] - '@unrs/resolver-binding-linux-arm64-musl@1.7.13': - resolution: {integrity: sha512-mEFL6q7vtxA6YJ9sLbxCnKOBynOvClVOcqwUErmaCxA94hgP11rlstouySxJCGeFAb8KfUX9mui82waYrqoBlQ==} + '@unrs/resolver-binding-linux-arm64-musl@1.9.1': + resolution: {integrity: sha512-ofdK/ow+ZSbSU0pRoB7uBaiRHeaAOYQFU5Spp87LdcPL/P1RhbCTMSIYVb61XWzsVEmYKjHFtoIE0wxP6AFvrA==} cpu: [arm64] os: [linux] - '@unrs/resolver-binding-linux-ppc64-gnu@1.7.13': - resolution: {integrity: sha512-MjJaNk8HK3rCOIPS6AQPJXlrDfG1LaePum+CZddHZygPqDNZyVrVdWTadT+U51vIx5QOdEE0oXcgTY+7VYsU1g==} + '@unrs/resolver-binding-linux-ppc64-gnu@1.9.1': + resolution: {integrity: sha512-eC8SXVn8de67HacqU7PoGdHA+9tGbqfEdD05AEFRAB81ejeQtNi5Fx7lPcxpLH79DW0BnMAHau3hi4RVkHfSCw==} cpu: [ppc64] os: [linux] - '@unrs/resolver-binding-linux-riscv64-gnu@1.7.13': - resolution: {integrity: sha512-9gAuT1+ed2eIuOXHSu4SdJOe7SUEzPTpOTEuTjGePvMEoWHywY5pvlcY7xMn3d8rhKHpwMzEhl8F8Oy+rkudzA==} + '@unrs/resolver-binding-linux-riscv64-gnu@1.9.1': + resolution: {integrity: sha512-fIkwvAAQ41kfoGWfzeJ33iLGShl0JEDZHrMnwTHMErUcPkaaZRJYjQjsFhMl315NEQ4mmTlC+2nfK/J2IszDOw==} cpu: [riscv64] os: [linux] - '@unrs/resolver-binding-linux-riscv64-musl@1.7.13': - resolution: {integrity: sha512-CNrJythJN9jC8SIJGoawebYylzGNJuWAWTKxxxx5Fr3DGEXbex/We4U7N4u6/dQAK3cLVOuAE/9a4D2JH35JIA==} + '@unrs/resolver-binding-linux-riscv64-musl@1.9.1': + resolution: {integrity: sha512-RAAszxImSOFLk44aLwnSqpcOdce8sBcxASledSzuFAd8Q5ZhhVck472SisspnzHdc7THCvGXiUeZ2hOC7NUoBQ==} cpu: [riscv64] os: [linux] - '@unrs/resolver-binding-linux-s390x-gnu@1.7.13': - resolution: {integrity: sha512-J0MVXXPvM2Bv+f+gzOZHLHEmXUJNKwJqkfMDTwE763w/tD+OA7UlTMLQihrcYRXwW5jZ8nbM2cEWTeFsTiH2JQ==} + '@unrs/resolver-binding-linux-s390x-gnu@1.9.1': + resolution: {integrity: sha512-QoP9vkY+THuQdZi05bA6s6XwFd6HIz3qlx82v9bTOgxeqin/3C12Ye7f7EOD00RQ36OtOPWnhEMMm84sv7d1XQ==} cpu: [s390x] os: [linux] - '@unrs/resolver-binding-linux-x64-gnu@1.7.13': - resolution: {integrity: sha512-Ii2WhtIpeWUe6XG/YhPUX3JNL3PiyXe56PJzqAYDUyB0gctkk/nngpuPnNKlLMcN9FID0T39mIJPhA6YpRcGDQ==} + '@unrs/resolver-binding-linux-x64-gnu@1.9.1': + resolution: {integrity: sha512-/p77cGN/h9zbsfCseAP5gY7tK+7+DdM8fkPfr9d1ye1fsF6bmtGbtZN6e/8j4jCZ9NEIBBkT0GhdgixSelTK9g==} cpu: [x64] os: [linux] - '@unrs/resolver-binding-linux-x64-musl@1.7.13': - resolution: {integrity: sha512-8F5E9EhtGYkfEM1OhyVgq76+SnMF5NfZS4v5Rq9JlfuqPnqXWgUjg903hxnG54PQr4I3jmG5bEeT77pGAA3Vvg==} + '@unrs/resolver-binding-linux-x64-musl@1.9.1': + resolution: {integrity: sha512-wInTqT3Bu9u50mDStEig1v8uxEL2Ht+K8pir/YhyyrM5ordJtxoqzsL1vR/CQzOJuDunUTrDkMM0apjW/d7/PA==} cpu: [x64] os: [linux] - '@unrs/resolver-binding-wasm32-wasi@1.7.13': - resolution: {integrity: sha512-7RXGTyDtyR/5o1FlBcjEaQQmQ2rKvu5Jq0Uhvce3PsbreZ61M4LQ5Mey2OMomIq4opphAkfDdm/lkHhWJNKNrw==} + '@unrs/resolver-binding-wasm32-wasi@1.9.1': + resolution: {integrity: sha512-eNwqO5kUa+1k7yFIircwwiniKWA0UFHo2Cfm8LYgkh9km7uMad+0x7X7oXbQonJXlqfitBTSjhA0un+DsHIrhw==} engines: {node: '>=14.0.0'} cpu: [wasm32] - '@unrs/resolver-binding-win32-arm64-msvc@1.7.13': - resolution: {integrity: sha512-MomJVcaVZe3j+CvkcfIVEcQyOOzauKpJYGY8d6PoKXn1FalMVGHX9/c0kXCI0WCK+CRGMExAiQhD8jkhyUVKxg==} + '@unrs/resolver-binding-win32-arm64-msvc@1.9.1': + resolution: {integrity: sha512-Eaz1xMUnoa2mFqh20mPqSdbYl6crnk8HnIXDu6nsla9zpgZJZO8w3c1gvNN/4Eb0RXRq3K9OG6mu8vw14gIqiA==} cpu: [arm64] os: [win32] - '@unrs/resolver-binding-win32-ia32-msvc@1.7.13': - resolution: {integrity: sha512-pnHfzbFj6e4gUARI1Yvz0TUhmFZae248O7JOMCSmSBN3R35RJiKyHmsMuIiPrUYWDzm5jUMPTxSs+b3Ipawusw==} + '@unrs/resolver-binding-win32-ia32-msvc@1.9.1': + resolution: {integrity: sha512-H/+d+5BGlnEQif0gnwWmYbYv7HJj563PUKJfn8PlmzF8UmF+8KxdvXdwCsoOqh4HHnENnoLrav9NYBrv76x1wQ==} cpu: [ia32] os: [win32] - '@unrs/resolver-binding-win32-x64-msvc@1.7.13': - resolution: {integrity: sha512-tI0+FTntE3BD0UxhTP12F/iTtkeMK+qh72/2aSxPZnTlOcMR9CTJid8CdppbSjj9wenq7PNcqScLtpPENH3Lvg==} + '@unrs/resolver-binding-win32-x64-msvc@1.9.1': + resolution: {integrity: sha512-rS86wI4R6cknYM3is3grCb/laE8XBEbpWAMSIPjYfmYp75KL5dT87jXF2orDa4tQYg5aajP5G8Fgh34dRyR+Rw==} cpu: [x64] os: [win32] @@ -3540,13 +3541,13 @@ packages: '@vitest/utils@2.1.9': resolution: {integrity: sha512-v0psaMSkNJ3A2NMrUEHFRzJtDPFn+/VWZ5WxImB21T9fjucJRmS7xCS3ppEnARb9y11OAzaD+P2Ps+b+BGX5iQ==} - '@web3icons/common@0.11.11': - resolution: {integrity: sha512-M06zqF0Dt0nIH6o+tRfvLW4DrMdKfqZUsoLKRiJF9nzE5iHrtSsrzO2lAyqJZPfSQFUyJzDxTfd2EoAtQxViqg==} + '@web3icons/common@0.11.13': + resolution: {integrity: sha512-oqgc6KZPp3b8RYC0ibS16Ds7vhGWHNUh0JKmgHa9wwJcy00QMBbggpiHfwrdxs4SCVkAJk8w6o3T0rNTpXwi9g==} peerDependencies: typescript: ^5.0.0 - '@web3icons/react@4.0.14': - resolution: {integrity: sha512-E81eIDjJSnSj8IqBdQOMomCpeMVYtt6mzBwxxNZ5aUIBMp/J1Dcxus4i7HibTXtzfJMwssXhakbG5IIXeodaeQ==} + '@web3icons/react@4.0.16': + resolution: {integrity: sha512-RPRZxiGX53aOHNYYAHNUqNDE7HEeDCKvLwv/SeFHLk0MIRcTxVqn0Kn4w9pkjA/0aVVhFH17oBdMQPbDujMtfg==} peerDependencies: react: ^18.2.0 @@ -3636,8 +3637,8 @@ packages: ajv@8.17.1: resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} - algoliasearch@5.27.0: - resolution: {integrity: sha512-2PvAgvxxJzA3+dB+ERfS2JPdvUsxNf89Cc2GF5iCcFupTULOwmbfinvqrC4Qj9nHJJDNf494NqEN/1f9177ZTQ==} + algoliasearch@5.29.0: + resolution: {integrity: sha512-E2l6AlTWGznM2e7vEE6T6hzObvEyXukxMOlBmVlMyixZyK1umuO/CiVc6sDBbzVH0oEviCE5IfVY1oZBmccYPQ==} engines: {node: '>= 14.0.0'} ansi-align@3.0.1: @@ -3833,11 +3834,11 @@ packages: resolution: {integrity: sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==} engines: {node: '>=10'} - brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + brace-expansion@1.1.12: + resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} - brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + brace-expansion@2.0.2: + resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} @@ -3905,8 +3906,8 @@ packages: camelize@1.0.1: resolution: {integrity: sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==} - caniuse-lite@1.0.30001721: - resolution: {integrity: sha512-cOuvmUVtKrtEaoKiO0rSc29jcjwMwX5tOHDy4MgVFEWiUXj4uBMJkwI8MDySkgXidpMiHUcviogAvFi4pA2hDQ==} + caniuse-lite@1.0.30001724: + resolution: {integrity: sha512-WqJo7p0TbHDOythNTqYujmaJTvtYRZrjpP8TCvH6Vb9CYJerJNKamKzIWOM4BkQatWj9H2lYulpdAQNBe7QhNA==} ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} @@ -4138,8 +4139,8 @@ packages: engines: {node: '>=4'} hasBin: true - cssstyle@4.4.0: - resolution: {integrity: sha512-W0Y2HOXlPkb2yaKrCVRjinYKciu/qSLEmK0K9mcfDei3zwlnHFEHAs/Du3cIRwPqY+J4JsiBzUjoHyc8RsJ03A==} + cssstyle@4.5.0: + resolution: {integrity: sha512-/7gw8TGrvH/0g564EnhgFZogTMVe+lifpB7LWU+PEsiq5o83TUXR3fDbzTRXOJhoJwck5IS9ez3Em5LNMMO2aw==} engines: {node: '>=18'} csstype@3.1.3: @@ -4356,8 +4357,8 @@ packages: decimal.js@10.5.0: resolution: {integrity: sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==} - decode-named-character-reference@1.1.0: - resolution: {integrity: sha512-Wy+JTSbFThEOXQIR2L6mxJvEs+veIzpmqD7ynWxMXGpnk3smkHQOp6forLdHsKpAMW9iJpaBBIxz285t1n1C3w==} + decode-named-character-reference@1.2.0: + resolution: {integrity: sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==} deep-eql@5.0.2: resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} @@ -4456,8 +4457,8 @@ packages: eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - electron-to-chromium@1.5.166: - resolution: {integrity: sha512-QPWqHL0BglzPYyJJ1zSSmwFFL6MFXhbACOCcsCdUMCkzPdS9/OIBVxg516X/Ado2qwAq8k0nJJ7phQPCqiaFAw==} + electron-to-chromium@1.5.172: + resolution: {integrity: sha512-fnKW9dGgmBfsebbYognQSv0CGGLFH1a5iV9EDYTBwmAQn+whbzHbLFlC+3XbHc8xaNtpO0etm8LOcRXs1qMRkQ==} elliptic@6.6.1: resolution: {integrity: sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==} @@ -4586,8 +4587,8 @@ packages: eslint-plugin-import-x: optional: true - eslint-mdx@3.4.2: - resolution: {integrity: sha512-NYNGuBClNzYzTJWbPzeYSh/eCl5m4BrX1MayNuGuvxn+cItTdNirE+ykos9q1CkYhHj+ZgQz6W+6EIaHMp7/jQ==} + eslint-mdx@3.5.0: + resolution: {integrity: sha512-3iFgW201z26bnFJelrrG2D8YXx1jk9JzXBp2pN32EMIpg47ZBM20mkdneLXn2CBKp27ZMHTygEA1DJNpqMu4Pg==} engines: {node: '>=18.0.0'} peerDependencies: eslint: '>=8.0.0' @@ -4596,8 +4597,8 @@ packages: remark-lint-file-extension: optional: true - eslint-module-utils@2.12.0: - resolution: {integrity: sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==} + eslint-module-utils@2.12.1: + resolution: {integrity: sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' @@ -4617,8 +4618,8 @@ packages: eslint-import-resolver-webpack: optional: true - eslint-plugin-import@2.31.0: - resolution: {integrity: sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==} + eslint-plugin-import@2.32.0: + resolution: {integrity: sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' @@ -4633,8 +4634,8 @@ packages: peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 - eslint-plugin-mdx@3.4.2: - resolution: {integrity: sha512-deXcJ4hTLkQ7F2JLto74UXeDkZYXu1Xtgvy0ZHlJ4CNwCYAZier3qNvTMBwE9VEnowxN+TgB18OhMLYyaR9hXA==} + eslint-plugin-mdx@3.5.0: + resolution: {integrity: sha512-pxXH/a2eH3Pxkmp1LSTqFfizIF1ZEUJjEm99gy+k/c+rK+SITEHg04LbPZBqG0T3Z4x0tPtY7zm9miqypcPxuw==} engines: {node: '>=18.0.0'} peerDependencies: eslint: '>=8.0.0' @@ -4770,8 +4771,8 @@ packages: resolution: {integrity: sha512-/kP8CAwxzLVEeFrMm4kMmy4CCDlpipyA7MYLVrdJIkV0fYF0UaigQHRsxHiuY/GEea+bh4KSv3TIlgr+2UL6bw==} engines: {node: '>=12.0.0'} - exsolve@1.0.5: - resolution: {integrity: sha512-pz5dvkYYKQ1AHVrgOzBKWeP4u4FRb3a6DNK2ucr0OoNwYIU4QWsJ+NM36LLzORT+z845MzKHHhpXiUF5nvQoJg==} + exsolve@1.0.7: + resolution: {integrity: sha512-VO5fQUzZtI6C+vx4w/4BWJpg3s/5l+6pRQEHzFRM8WFi4XffSP1Z+4qi7GbjWbvRQEbdIco5mIMq+zX4rPuLrw==} extend-shallow@2.0.1: resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} @@ -4892,8 +4893,8 @@ packages: fraction.js@4.3.7: resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} - framer-motion@12.16.0: - resolution: {integrity: sha512-xryrmD4jSBQrS2IkMdcTmiS4aSKckbS7kLDCuhUn9110SQKG1w3zlq1RTqCblewg+ZYe+m3sdtzQA6cRwo5g8Q==} + framer-motion@12.19.1: + resolution: {integrity: sha512-nq9hwWAEKf4gzprbOZzKugLV5OVKF7zrNDY6UOVu+4D3ZgIkg8L9Jy6AMrpBM06fhbKJ6LEG6UY5+t7Eq6wNlg==} peerDependencies: '@emotion/is-prop-valid': '*' react: ^18.0.0 || ^19.0.0 @@ -5064,8 +5065,8 @@ packages: peerDependencies: hardhat: ^2.0.0 - hardhat@2.24.2: - resolution: {integrity: sha512-oYt+tcN2379Z3kqIhvVw6IFgWqTm/ixcrTvyAuQdE2RbD+kknwF7hDfUeggy0akrw6xdgCtXvnw9DFrxAB70hA==} + hardhat@2.25.0: + resolution: {integrity: sha512-yBiA74Yj3VnTRj7lhnn8GalvBdvsMOqTKRrRATSy/2v0VIR2hR0Jcnmfn4aQBLtGAnr3Q2c8CxL0g3LYegUp+g==} hasBin: true peerDependencies: ts-node: '*' @@ -5118,12 +5119,6 @@ packages: hast-util-from-parse5@8.0.3: resolution: {integrity: sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==} - hast-util-has-property@3.0.0: - resolution: {integrity: sha512-MNilsvEKLFpV604hwfhVStK0usFY/QmM5zX16bo7EjnAEGofr5YyI37kzopBlZJkHD4t887i+q/C8/tr5Q94cA==} - - hast-util-interactive@3.0.0: - resolution: {integrity: sha512-9VFa3kP6AT40BNYcPmn3jpsG+1KPDF0rUFCrFVQDUsuUXZ3YLODm8UGV0tmYzFpcOIQXTAOi2ccS3ywlj2dQTA==} - hast-util-is-element@3.0.0: resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} @@ -5157,6 +5152,10 @@ packages: hast-util-whitespace@3.0.0: resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} + hast@1.0.0: + resolution: {integrity: sha512-vFUqlRV5C+xqP76Wwq2SrM0kipnmpxJm7OfvVXpB35Fp+Fn4MV+ozr+JZr5qFvyR1q/U+Foim2x+3P+x9S1PLA==} + deprecated: Renamed to rehype + hastscript@9.0.1: resolution: {integrity: sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==} @@ -5682,8 +5681,8 @@ packages: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true - loupe@3.1.3: - resolution: {integrity: sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==} + loupe@3.1.4: + resolution: {integrity: sha512-wJzkKwJrheKtknCOKNEtDK4iqg/MxmZheEMtSTYvnzRdEYaZzmgH976nenp8WdJRdx5Vc1X/9MO0Oszl6ezeXg==} lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} @@ -5784,8 +5783,8 @@ packages: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} - mermaid@11.6.0: - resolution: {integrity: sha512-PE8hGUy1LDlWIHWBP05SFdqUHGmRcCcK4IzpOKPE35eOw+G9zZgcnMpyunJVUEOgb//KBORPjysKndw8bFLuRg==} + mermaid@11.7.0: + resolution: {integrity: sha512-/1/5R0rt0Z1Ak0CuznAnCF3HtQgayRXUz6SguzOwN4L+DuCobz0UxnQ+ZdTSZ3AugKVVh78tiVmsHpHWV25TCw==} mhchemparser@4.2.1: resolution: {integrity: sha512-kYmyrCirqJf3zZ9t/0wGgRZ4/ZJw//VwaRVGA75C4nhE60vtnIzhl9J9ndkX/h6hxSN7pjg/cE0VxbnNM+bnDQ==} @@ -5990,14 +5989,14 @@ packages: engines: {node: '>= 14.0.0'} hasBin: true - motion-dom@12.16.0: - resolution: {integrity: sha512-Z2nGwWrrdH4egLEtgYMCEN4V2qQt1qxlKy/uV7w691ztyA41Q5Rbn0KNGbsNVDZr9E8PD2IOQ3hSccRnB6xWzw==} + motion-dom@12.19.0: + resolution: {integrity: sha512-m96uqq8VbwxFLU0mtmlsIVe8NGGSdpBvBSHbnnOJQxniPaabvVdGgxSamhuDwBsRhwX7xPxdICgVJlOpzn/5bw==} - motion-utils@12.12.1: - resolution: {integrity: sha512-f9qiqUHm7hWSLlNW8gS9pisnsN7CRFRD58vNjptKdsqFLpkVnX00TNeD6Q0d27V9KzT7ySFyK1TZ/DShfVOv6w==} + motion-utils@12.19.0: + resolution: {integrity: sha512-BuFTHINYmV07pdWs6lj6aI63vr2N4dg0vR+td0rtrdpWOhBzIkEklZyLcvKBoEtwSqx8Jg06vUB5RS0xDiUybw==} - motion@12.16.0: - resolution: {integrity: sha512-P3HA83fnPMEGBLfKdD5vDdjH1Aa3wM3jT3+HX3fCVpy/4/lJiqvABajLgZenBu+rzkFzmeaPkvT7ouf9Tq5tVQ==} + motion@12.19.1: + resolution: {integrity: sha512-OhoHWrht+zwDPccr2wGltJdwgz2elFBBt/sLei2g0hwICvy2hOBFUkA4Ylup3VnDgz+vUtecf694EV7bJK4XjA==} peerDependencies: '@emotion/is-prop-valid': '*' react: ^18.0.0 || ^19.0.0 @@ -6055,8 +6054,8 @@ packages: peerDependencies: next: '*' - next@14.2.29: - resolution: {integrity: sha512-s98mCOMOWLGGpGOfgKSnleXLuegvvH415qtRZXpSp00HeEgdmrxmwL9cgKU+h4XrhB16zEI5d/7BnkS3ATInsA==} + next@14.2.30: + resolution: {integrity: sha512-+COdu6HQrHHFQ1S/8BBsCag61jZacmvbuL2avHvQFbWa2Ox7bE+d8FyNgxRLjXQ5wtPyQwEmk85js/AuaG2Sbg==} engines: {node: '>=18.17.0'} hasBin: true peerDependencies: @@ -6231,8 +6230,8 @@ packages: resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} engines: {node: '>= 0.4'} - ox@0.7.1: - resolution: {integrity: sha512-+k9fY9PRNuAMHRFIUbiK9Nt5seYHHzSQs9Bj+iMETcGtlpS7SmBzcGSVUQO3+nqGLEiNK4598pHNFlVRaZbRsg==} + ox@0.8.1: + resolution: {integrity: sha512-e+z5epnzV+Zuz91YYujecW8cF01mzmrUtWotJ0oEPym/G82uccs7q0WDHTYL3eiONbTUEvcZrptAKLgTBD3u2A==} peerDependencies: typescript: '>=5.4.0' peerDependenciesMeta: @@ -6450,16 +6449,16 @@ packages: resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} engines: {node: ^10 || ^12 || >=14} - postcss@8.5.4: - resolution: {integrity: sha512-QSa9EBe+uwlGTFmHsPKokv3B/oEMQZxfqW0QqNCyhpa6mB1afzulwn8hihglqAb2pOw+BJgNlmXQ8la2VeHB7w==} + postcss@8.5.6: + resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} engines: {node: ^10 || ^12 || >=14} prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} - prettier-plugin-tailwindcss@0.6.12: - resolution: {integrity: sha512-OuTQKoqNwV7RnxTPwXWzOFXy6Jc4z8oeRZYGuMpRyG3WbuR3jjXdQFK8qFBMBx8UHWdHrddARz2fgUenild6aw==} + prettier-plugin-tailwindcss@0.6.13: + resolution: {integrity: sha512-uQ0asli1+ic8xrrSmIOaElDu0FacR4x69GynTh2oZjFY10JUt6EEumTQl5tB4fMeD6I1naKd+4rXQQ7esT2i1g==} engines: {node: '>=14.21.3'} peerDependencies: '@ianvs/prettier-plugin-sort-imports': '*' @@ -6518,8 +6517,8 @@ packages: engines: {node: '>=10.13.0'} hasBin: true - prettier@3.5.3: - resolution: {integrity: sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==} + prettier@3.6.1: + resolution: {integrity: sha512-5xGWRa90Sp2+x1dQtNpIpeOQpTDBs9cZDmA/qs2vDNN2i18PdapqY7CmBeyLlMuGqXJRIOPaCaVZTLNQRWUH/A==} engines: {node: '>=14'} hasBin: true @@ -6591,8 +6590,8 @@ packages: resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} engines: {node: '>= 0.8'} - react-aria@3.41.0: - resolution: {integrity: sha512-jg4aUQrsBTwgKitXlyLvEVSigzn79jNpgDP+mrrDIX8emzr+BBXx1x6WSVHDAESep72Xcp+zr9PbLmBCk3/nzQ==} + react-aria@3.41.1: + resolution: {integrity: sha512-5mujwnW6/NHvONDecb7DiWkzI27dzBO1auKt4KkgNuW+Awud1LCaK/NOlHp4xZl3fSfh1ROpdAKERHCh7nvAAQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 @@ -6691,8 +6690,8 @@ packages: react: '>=16.6.0' react-dom: '>=16.6.0' - react-virtuoso@4.12.8: - resolution: {integrity: sha512-NMMKfDBr/+xZZqCQF3tN1SZsh6FwOJkYgThlfnsPLkaEhdyQo0EuWUzu3ix6qjnI7rYwJhMwRGoJBi+aiDfGsA==} + react-virtuoso@4.13.0: + resolution: {integrity: sha512-XHv2Fglpx80yFPdjZkV9d1baACKghg/ucpDFEXwaix7z0AfVQj+mF6lM+YQR6UC/TwzXG2rJKydRMb3+7iV3PA==} peerDependencies: react: '>=16 || >=17 || >= 18 || >= 19' react-dom: '>=16 || >=17 || >= 18 || >=19' @@ -6726,8 +6725,8 @@ packages: recharts-scale@0.4.5: resolution: {integrity: sha512-kivNFO+0OcUNu7jQquLXAxz1FIwZj8nrj+YkOKc5694NbjCvcT6aSZiIzNzd2Kul4o4rTto8QVR9lMNtxD4G1w==} - recharts@2.15.3: - resolution: {integrity: sha512-EdOPzTwcFSuqtvkDoaM5ws/Km1+WTAO2eizL7rqiG0V2UVhTnz0m7J2i0CjVPUCdEkZImaWvXLbZDS2H5t6GFQ==} + recharts@2.15.4: + resolution: {integrity: sha512-UT/q6fwS3c1dHbXv2uFgYJ9BMFHu3fwnd7AYZaEQhXuYQ4hgsxLvsUXzGdKeZrW5xopzDCvuA2N41WJ88I7zIw==} engines: {node: '>=14'} peerDependencies: react: ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -6902,8 +6901,8 @@ packages: rollup-pluginutils@2.8.2: resolution: {integrity: sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==} - rollup@4.42.0: - resolution: {integrity: sha512-LW+Vse3BJPyGJGAJt1j8pWDKPd73QM8cRXYK1IxOBgL2AGLu7Xd2YOW0M2sLUBCkF5MshXXtMApyEAEzMVMsnw==} + rollup@4.44.0: + resolution: {integrity: sha512-qHcdEzLCiktQIfwBq420pn2dP+30uzqYxv9ETm91wdt2R9AFcWfjNAmje4NWlnCIQ5RMTzVf0ZyisOKqHR6RwA==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -7020,8 +7019,8 @@ packages: shiki@1.29.2: resolution: {integrity: sha512-njXuliz/cP+67jU2hukkxCNuH1yUi4QfdZZY+sMr5PPrIyXSu5iTb/qYC4BiWWB0vZ+7TbdvYUCeL23zpwCfbg==} - shiki@3.6.0: - resolution: {integrity: sha512-tKn/Y0MGBTffQoklaATXmTqDU02zx8NYBGQ+F6gy87/YjKbizcLd+Cybh/0ZtOBX9r1NEnAy/GTRDKtOsc1L9w==} + shiki@3.7.0: + resolution: {integrity: sha512-ZcI4UT9n6N2pDuM2n3Jbk0sR4Swzq43nLPgS/4h0E3B/NrFn2HKElrDtceSf8Zx/OWYOo7G1SAtBLypCp+YXqg==} side-channel-list@1.0.0: resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} @@ -7246,11 +7245,11 @@ packages: strnum@2.1.1: resolution: {integrity: sha512-7ZvoFTiCnGxBtDqJ//Cu6fWtZtc7Y3x+QOirG15wztbdngGSkht27o2pyGWrVy0b4WAy3jbKmnoK6g5VlVNUUw==} - style-to-js@1.1.16: - resolution: {integrity: sha512-/Q6ld50hKYPH3d/r6nr117TZkHR0w0kGGIVfpG9N6D8NymRPM9RqCUv4pRpJ62E5DqOYx2AFpbZMyCPnjQCnOw==} + style-to-js@1.1.17: + resolution: {integrity: sha512-xQcBGDxJb6jjFCTzvQtfiPn6YvvP2O8U1MDIPNfJQlWMYfktPy+iGsHE7cssjs7y84d9fQaK4UF3RIJaAHSoYA==} - style-to-object@1.0.8: - resolution: {integrity: sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==} + style-to-object@1.0.9: + resolution: {integrity: sha512-G4qppLgKu/k6FwRpHiGiKPaPTFcG3g4wNVX/Qsfu+RqQM30E7Tyu/TEgxcL9PNLF5pdRLwQdE3YKKf+KF2Dzlw==} styled-jsx@5.1.1: resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} @@ -7352,8 +7351,8 @@ packages: resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==} engines: {node: '>=12.0.0'} - tinypool@1.1.0: - resolution: {integrity: sha512-7CotroY9a8DKsKprEy/a14aCCm8jYVmR7aFy4fpkZM8sdpNJbKkixuNjgM50yCmip2ezc8z4N7k3oe2+rfRJCQ==} + tinypool@1.1.1: + resolution: {integrity: sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==} engines: {node: ^18.0.0 || >=20.0.0} tinyrainbow@1.2.0: @@ -7457,8 +7456,8 @@ packages: typescript: optional: true - tsx@4.19.4: - resolution: {integrity: sha512-gK5GVzDkJK1SI1zwHf32Mqxf2tSJkNx+eYcNly5+nHvWqXUJYUkWBQtKauoESz3ymezAI++ZwT855x5p5eop+Q==} + tsx@4.20.3: + resolution: {integrity: sha512-qjbnuR9Tr+FJOMBqJCW5ehvIo/buZq7vH7qD7JziU98h6l3qGy0a/yPFjwO+y0/T7GFpNgNAvEcPPVfyT8rrPQ==} engines: {node: '>=18.0.0'} hasBin: true @@ -7652,8 +7651,8 @@ packages: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} - unrs-resolver@1.7.13: - resolution: {integrity: sha512-QUjCYKAgrdJpf3wA73zWjOrO7ra19lfnwQ8HRkNOLah5AVDqOS38UunnyhzsSL8AE+2/AGnAHxlr8cGshCP35A==} + unrs-resolver@1.9.1: + resolution: {integrity: sha512-4AZVxP05JGN6DwqIkSP4VKLOcwQa5l37SWHF/ahcuqBMbfxbpN1L1QKafEhWCziHhzKex9H/AR09H0OuVyU+9g==} update-browserslist-db@1.1.3: resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} @@ -7745,8 +7744,8 @@ packages: victory-vendor@36.9.2: resolution: {integrity: sha512-PnpQQMuxlwYdocC8fIJqVXvkeViHYzotI+NJrCuav0ZYFoq912ZHBk3mCeuj+5/VpodOjPe1z0Fk2ihgzlXqjQ==} - viem@2.31.0: - resolution: {integrity: sha512-U7OMQ6yqK+bRbEIarf2vqxL7unSEQvNxvML/1zG7suAmKuJmipqdVTVJGKBCJiYsm/EremyO2FS4dHIPpGv+eA==} + viem@2.31.4: + resolution: {integrity: sha512-0UZ/asvzl6p44CIBRDbwEcn3HXIQQurBZcMo5qmLhQ8s27Ockk+RYohgTLlpLvkYs8/t4UUEREAbHLuek1kXcw==} peerDependencies: typescript: '>=5.0.4' peerDependenciesMeta: @@ -7925,8 +7924,8 @@ packages: workerpool@6.5.1: resolution: {integrity: sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==} - wrangler@3.114.9: - resolution: {integrity: sha512-1e0gL+rxLF04kM9bW4sxoDGLXpJ1x53Rx1t18JuUm6F67qadKKPISyUAXuBeIQudWrCWEBXaTVnSdLHz0yBXbA==} + wrangler@3.114.10: + resolution: {integrity: sha512-UMs4bSH+P47oXvXqgziRqD8UOT8KBF6D/4O0bB9Kyh9QrT1FGpG2p4rV4FtbKFOchDrXQozbthScND+vLc8gqw==} engines: {node: '>=16.17.0'} hasBin: true peerDependencies: @@ -8037,11 +8036,11 @@ packages: peerDependencies: zod: ^3.18.0 - zod-validation-error@3.4.1: - resolution: {integrity: sha512-1KP64yqDPQ3rupxNv7oXhf7KdhHHgaqbKuspVoiN93TT0xrBjql+Svjkdjq/Qh/7GSMmgQs3AfvBT0heE35thw==} + zod-validation-error@3.5.2: + resolution: {integrity: sha512-mdi7YOLtram5dzJ5aDtm1AG9+mxRma1iaMrZdYIpFO7epdKBUwLHIxTF8CPDeCQ828zAXYtizrKlEJAtzgfgrw==} engines: {node: '>=18.0.0'} peerDependencies: - zod: ^3.24.4 + zod: ^3.25.0 zod@3.22.3: resolution: {integrity: sha512-EjIevzuJRiRPbVH4mGc8nApb/lVLKVpmUhAaR5R5doKGfAnGJ6Gr3CViAVjP+4FWSxCsybeWQdcgCtbX+7oZug==} @@ -8049,8 +8048,8 @@ packages: zod@3.23.8: resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} - zod@3.25.57: - resolution: {integrity: sha512-6tgzLuwVST5oLUxXTmBqoinKMd3JeesgbgseXeFasKKj8Q1FCZrHnbqJOyiEvr4cVAlbug+CgIsmJ8cl/pU5FA==} + zod@3.25.67: + resolution: {integrity: sha512-idA2YXwpCdqUSKRCACDE6ItZD9TZzy3OZMtpfLoh6oPR47lipysRrJfjzMqFxQ3uJuUPyUeWe1r9vLH33xO/Qw==} zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} @@ -8061,110 +8060,110 @@ snapshots: '@adraffy/ens-normalize@1.11.0': {} - '@algolia/autocomplete-core@1.17.9(@algolia/client-search@5.27.0)(algoliasearch@5.27.0)(search-insights@2.17.3)': + '@algolia/autocomplete-core@1.17.9(@algolia/client-search@5.29.0)(algoliasearch@5.29.0)(search-insights@2.17.3)': dependencies: - '@algolia/autocomplete-plugin-algolia-insights': 1.17.9(@algolia/client-search@5.27.0)(algoliasearch@5.27.0)(search-insights@2.17.3) - '@algolia/autocomplete-shared': 1.17.9(@algolia/client-search@5.27.0)(algoliasearch@5.27.0) + '@algolia/autocomplete-plugin-algolia-insights': 1.17.9(@algolia/client-search@5.29.0)(algoliasearch@5.29.0)(search-insights@2.17.3) + '@algolia/autocomplete-shared': 1.17.9(@algolia/client-search@5.29.0)(algoliasearch@5.29.0) transitivePeerDependencies: - '@algolia/client-search' - algoliasearch - search-insights - '@algolia/autocomplete-plugin-algolia-insights@1.17.9(@algolia/client-search@5.27.0)(algoliasearch@5.27.0)(search-insights@2.17.3)': + '@algolia/autocomplete-plugin-algolia-insights@1.17.9(@algolia/client-search@5.29.0)(algoliasearch@5.29.0)(search-insights@2.17.3)': dependencies: - '@algolia/autocomplete-shared': 1.17.9(@algolia/client-search@5.27.0)(algoliasearch@5.27.0) + '@algolia/autocomplete-shared': 1.17.9(@algolia/client-search@5.29.0)(algoliasearch@5.29.0) search-insights: 2.17.3 transitivePeerDependencies: - '@algolia/client-search' - algoliasearch - '@algolia/autocomplete-preset-algolia@1.17.9(@algolia/client-search@5.27.0)(algoliasearch@5.27.0)': + '@algolia/autocomplete-preset-algolia@1.17.9(@algolia/client-search@5.29.0)(algoliasearch@5.29.0)': dependencies: - '@algolia/autocomplete-shared': 1.17.9(@algolia/client-search@5.27.0)(algoliasearch@5.27.0) - '@algolia/client-search': 5.27.0 - algoliasearch: 5.27.0 + '@algolia/autocomplete-shared': 1.17.9(@algolia/client-search@5.29.0)(algoliasearch@5.29.0) + '@algolia/client-search': 5.29.0 + algoliasearch: 5.29.0 - '@algolia/autocomplete-shared@1.17.9(@algolia/client-search@5.27.0)(algoliasearch@5.27.0)': + '@algolia/autocomplete-shared@1.17.9(@algolia/client-search@5.29.0)(algoliasearch@5.29.0)': dependencies: - '@algolia/client-search': 5.27.0 - algoliasearch: 5.27.0 + '@algolia/client-search': 5.29.0 + algoliasearch: 5.29.0 - '@algolia/client-abtesting@5.27.0': + '@algolia/client-abtesting@5.29.0': dependencies: - '@algolia/client-common': 5.27.0 - '@algolia/requester-browser-xhr': 5.27.0 - '@algolia/requester-fetch': 5.27.0 - '@algolia/requester-node-http': 5.27.0 + '@algolia/client-common': 5.29.0 + '@algolia/requester-browser-xhr': 5.29.0 + '@algolia/requester-fetch': 5.29.0 + '@algolia/requester-node-http': 5.29.0 - '@algolia/client-analytics@5.27.0': + '@algolia/client-analytics@5.29.0': dependencies: - '@algolia/client-common': 5.27.0 - '@algolia/requester-browser-xhr': 5.27.0 - '@algolia/requester-fetch': 5.27.0 - '@algolia/requester-node-http': 5.27.0 + '@algolia/client-common': 5.29.0 + '@algolia/requester-browser-xhr': 5.29.0 + '@algolia/requester-fetch': 5.29.0 + '@algolia/requester-node-http': 5.29.0 - '@algolia/client-common@5.27.0': {} + '@algolia/client-common@5.29.0': {} - '@algolia/client-insights@5.27.0': + '@algolia/client-insights@5.29.0': dependencies: - '@algolia/client-common': 5.27.0 - '@algolia/requester-browser-xhr': 5.27.0 - '@algolia/requester-fetch': 5.27.0 - '@algolia/requester-node-http': 5.27.0 + '@algolia/client-common': 5.29.0 + '@algolia/requester-browser-xhr': 5.29.0 + '@algolia/requester-fetch': 5.29.0 + '@algolia/requester-node-http': 5.29.0 - '@algolia/client-personalization@5.27.0': + '@algolia/client-personalization@5.29.0': dependencies: - '@algolia/client-common': 5.27.0 - '@algolia/requester-browser-xhr': 5.27.0 - '@algolia/requester-fetch': 5.27.0 - '@algolia/requester-node-http': 5.27.0 + '@algolia/client-common': 5.29.0 + '@algolia/requester-browser-xhr': 5.29.0 + '@algolia/requester-fetch': 5.29.0 + '@algolia/requester-node-http': 5.29.0 - '@algolia/client-query-suggestions@5.27.0': + '@algolia/client-query-suggestions@5.29.0': dependencies: - '@algolia/client-common': 5.27.0 - '@algolia/requester-browser-xhr': 5.27.0 - '@algolia/requester-fetch': 5.27.0 - '@algolia/requester-node-http': 5.27.0 + '@algolia/client-common': 5.29.0 + '@algolia/requester-browser-xhr': 5.29.0 + '@algolia/requester-fetch': 5.29.0 + '@algolia/requester-node-http': 5.29.0 - '@algolia/client-search@5.27.0': + '@algolia/client-search@5.29.0': dependencies: - '@algolia/client-common': 5.27.0 - '@algolia/requester-browser-xhr': 5.27.0 - '@algolia/requester-fetch': 5.27.0 - '@algolia/requester-node-http': 5.27.0 + '@algolia/client-common': 5.29.0 + '@algolia/requester-browser-xhr': 5.29.0 + '@algolia/requester-fetch': 5.29.0 + '@algolia/requester-node-http': 5.29.0 - '@algolia/ingestion@1.27.0': + '@algolia/ingestion@1.29.0': dependencies: - '@algolia/client-common': 5.27.0 - '@algolia/requester-browser-xhr': 5.27.0 - '@algolia/requester-fetch': 5.27.0 - '@algolia/requester-node-http': 5.27.0 + '@algolia/client-common': 5.29.0 + '@algolia/requester-browser-xhr': 5.29.0 + '@algolia/requester-fetch': 5.29.0 + '@algolia/requester-node-http': 5.29.0 - '@algolia/monitoring@1.27.0': + '@algolia/monitoring@1.29.0': dependencies: - '@algolia/client-common': 5.27.0 - '@algolia/requester-browser-xhr': 5.27.0 - '@algolia/requester-fetch': 5.27.0 - '@algolia/requester-node-http': 5.27.0 + '@algolia/client-common': 5.29.0 + '@algolia/requester-browser-xhr': 5.29.0 + '@algolia/requester-fetch': 5.29.0 + '@algolia/requester-node-http': 5.29.0 - '@algolia/recommend@5.27.0': + '@algolia/recommend@5.29.0': dependencies: - '@algolia/client-common': 5.27.0 - '@algolia/requester-browser-xhr': 5.27.0 - '@algolia/requester-fetch': 5.27.0 - '@algolia/requester-node-http': 5.27.0 + '@algolia/client-common': 5.29.0 + '@algolia/requester-browser-xhr': 5.29.0 + '@algolia/requester-fetch': 5.29.0 + '@algolia/requester-node-http': 5.29.0 - '@algolia/requester-browser-xhr@5.27.0': + '@algolia/requester-browser-xhr@5.29.0': dependencies: - '@algolia/client-common': 5.27.0 + '@algolia/client-common': 5.29.0 - '@algolia/requester-fetch@5.27.0': + '@algolia/requester-fetch@5.29.0': dependencies: - '@algolia/client-common': 5.27.0 + '@algolia/client-common': 5.29.0 - '@algolia/requester-node-http@5.27.0': + '@algolia/requester-node-http@5.29.0': dependencies: - '@algolia/client-common': 5.27.0 + '@algolia/client-common': 5.29.0 '@alloc/quick-lru@5.2.0': {} @@ -8175,7 +8174,7 @@ snapshots: '@antfu/utils@8.1.1': {} - '@apidevtools/json-schema-ref-parser@13.0.4': + '@apidevtools/json-schema-ref-parser@13.0.5': dependencies: '@types/json-schema': 7.0.15 js-yaml: 4.1.0 @@ -8247,7 +8246,7 @@ snapshots: '@babel/runtime': 7.27.6 '@floating-ui/react': 0.27.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@floating-ui/utils': 0.2.9 - '@react-aria/overlays': 3.27.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/overlays': 3.27.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) prop-types: 15.8.1 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -8301,7 +8300,7 @@ snapshots: '@cloudflare/workerd-windows-64@1.20250408.0': optional: true - '@cloudflare/workers-types@4.20250610.0': {} + '@cloudflare/workers-types@4.20250620.0': {} '@corex/deepmerge@4.0.43': {} @@ -8331,12 +8330,12 @@ snapshots: '@docsearch/css@3.9.0': {} - '@docsearch/react@3.9.0(@algolia/client-search@5.27.0)(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)': + '@docsearch/react@3.9.0(@algolia/client-search@5.29.0)(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)': dependencies: - '@algolia/autocomplete-core': 1.17.9(@algolia/client-search@5.27.0)(algoliasearch@5.27.0)(search-insights@2.17.3) - '@algolia/autocomplete-preset-algolia': 1.17.9(@algolia/client-search@5.27.0)(algoliasearch@5.27.0) + '@algolia/autocomplete-core': 1.17.9(@algolia/client-search@5.29.0)(algoliasearch@5.29.0)(search-insights@2.17.3) + '@algolia/autocomplete-preset-algolia': 1.17.9(@algolia/client-search@5.29.0)(algoliasearch@5.29.0) '@docsearch/css': 3.9.0 - algoliasearch: 5.27.0 + algoliasearch: 5.29.0 optionalDependencies: '@types/react': 18.3.23 react: 18.3.1 @@ -8345,13 +8344,13 @@ snapshots: transitivePeerDependencies: - '@algolia/client-search' - '@edgeandnode/common@7.0.4(hardhat@2.24.2(typescript@5.8.3))': + '@edgeandnode/common@7.0.4(hardhat@2.25.0(typescript@5.8.3))': dependencies: '@ethersproject/providers': 5.8.0 '@pinax/graph-networks-registry': 0.6.7 '@uniswap/sdk-core': 7.7.2 '@uniswap/v3-core': 1.0.1 - '@uniswap/v3-sdk': 3.25.2(hardhat@2.24.2(typescript@5.8.3)) + '@uniswap/v3-sdk': 3.25.2(hardhat@2.25.0(typescript@5.8.3)) dataloader: 2.2.3 dayjs: 1.11.13 decimal.js: 10.5.0 @@ -8365,13 +8364,13 @@ snapshots: - hardhat - utf-8-validate - '@edgeandnode/ens@2.2.0(typescript@5.8.3)(viem@2.31.0(typescript@5.8.3)(zod@3.25.57))': + '@edgeandnode/ens@2.3.0(typescript@5.8.3)(viem@2.31.4(typescript@5.8.3)(zod@3.25.67))': dependencies: - '@ensdomains/ensjs': 4.0.2(typescript@5.8.3)(viem@2.31.0(typescript@5.8.3)(zod@3.25.57))(zod@3.25.57) + '@ensdomains/ensjs': 4.0.2(typescript@5.8.3)(viem@2.31.4(typescript@5.8.3)(zod@3.25.67))(zod@3.25.67) graphql: 16.11.0 graphql-request: 7.2.0(graphql@16.11.0) - viem: 2.31.0(typescript@5.8.3)(zod@3.25.57) - zod: 3.25.57 + viem: 2.31.4(typescript@5.8.3)(zod@3.25.67) + zod: 3.25.67 transitivePeerDependencies: - encoding - typescript @@ -8385,8 +8384,8 @@ snapshots: '@typescript-eslint/parser': 6.21.0(eslint@8.57.1)(typescript@5.8.3) eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.31.0)(eslint@8.57.1) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@8.57.1) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1) eslint-plugin-jsx-a11y: 6.10.2(eslint@8.57.1) eslint-plugin-react: 7.37.5(eslint@8.57.1) eslint-plugin-react-hooks: 4.6.2(eslint@8.57.1) @@ -8399,11 +8398,11 @@ snapshots: - eslint-plugin-import-x - supports-color - '@edgeandnode/gds@6.5.15(@emotion/is-prop-valid@0.8.8)(@emotion/react@11.14.0(@types/react@18.3.23)(react@18.3.1))(@theme-ui/core@0.17.2(@emotion/react@11.14.0(@types/react@18.3.23)(react@18.3.1))(react@18.3.1))(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(dayjs@1.11.13)(hardhat@2.24.2(typescript@5.8.3))(next@14.2.29(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1)(theme-ui@0.17.2(@emotion/react@11.14.0(@types/react@18.3.23)(react@18.3.1))(react@18.3.1))(typescript@5.8.3)': + '@edgeandnode/gds@6.6.2(@emotion/is-prop-valid@0.8.8)(@emotion/react@11.14.0(@types/react@18.3.23)(react@18.3.1))(@theme-ui/core@0.17.2(@emotion/react@11.14.0(@types/react@18.3.23)(react@18.3.1))(react@18.3.1))(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(dayjs@1.11.13)(hardhat@2.25.0(typescript@5.8.3))(next@14.2.30(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1)(theme-ui@0.17.2(@emotion/react@11.14.0(@types/react@18.3.23)(react@18.3.1))(react@18.3.1))(typescript@5.8.3)': dependencies: '@base-ui-components/react': 1.0.0-alpha.7(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@bramus/style-observer': 2.0.2 - '@edgeandnode/common': 7.0.4(hardhat@2.24.2(typescript@5.8.3)) + '@edgeandnode/common': 7.0.4(hardhat@2.25.0(typescript@5.8.3)) '@emotion/react': 11.14.0(@types/react@18.3.23)(react@18.3.1) '@figma/code-connect': 1.3.3 '@floating-ui/react-dom': 2.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -8427,7 +8426,7 @@ snapshots: '@tanem/react-nprogress': 5.0.55(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@theme-ui/css': 0.17.2(@emotion/react@11.14.0(@types/react@18.3.23)(react@18.3.1)) '@theme-ui/match-media': 0.17.2(@theme-ui/core@0.17.2(@emotion/react@11.14.0(@types/react@18.3.23)(react@18.3.1))(react@18.3.1))(@theme-ui/css@0.17.2(@emotion/react@11.14.0(@types/react@18.3.23)(react@18.3.1)))(react@18.3.1) - '@web3icons/react': 4.0.14(react@18.3.1)(typescript@5.8.3) + '@web3icons/react': 4.0.16(react@18.3.1)(typescript@5.8.3) '@xstate/react': 3.2.2(@types/react@18.3.23)(react@18.3.1)(xstate@4.38.3) color: 5.0.0 dayjs: 1.11.13 @@ -8435,12 +8434,12 @@ snapshots: ethers: 5.8.0 lodash: 4.17.21 md5: 2.3.0 - motion: 12.16.0(@emotion/is-prop-valid@0.8.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + motion: 12.19.1(@emotion/is-prop-valid@0.8.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) numeral: 2.0.6 prism-react-renderer: 2.4.1(react@18.3.1) prismjs: 1.30.0 react: 18.3.1 - react-aria: 3.41.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react-aria: 3.41.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react-device-detect: 2.2.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react-dom: 18.3.1(react@18.3.1) react-dropzone: 14.3.8(react@18.3.1) @@ -8448,16 +8447,16 @@ snapshots: react-image-crop: 11.0.10(react@18.3.1) react-keyed-flatten-children: 5.0.0(react-is@18.3.1)(react@18.3.1) react-transition-group: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react-virtuoso: 4.12.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - recharts: 2.15.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - shiki: 3.6.0 + react-virtuoso: 4.13.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + recharts: 2.15.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + shiki: 3.7.0 tailwindcss: 3.4.17 theme-ui: 0.17.2(@emotion/react@11.14.0(@types/react@18.3.23)(react@18.3.1))(react@18.3.1) typy: 3.3.0 universal-cookie: 7.2.2 xstate: 4.38.3 optionalDependencies: - next: 14.2.29(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 14.2.30(react-dom@18.3.1(react@18.3.1))(react@18.3.1) transitivePeerDependencies: - '@emotion/is-prop-valid' - '@theme-ui/core' @@ -8474,11 +8473,11 @@ snapshots: - typescript - utf-8-validate - '@edgeandnode/go@10.1.1(ae149f031949f9aa05d727c3c6926441)': + '@edgeandnode/go@10.2.3(f31233e6aec53dd14ecd91b56887af79)': dependencies: - '@edgeandnode/common': 7.0.4(hardhat@2.24.2(typescript@5.8.3)) - '@edgeandnode/ens': 2.2.0(typescript@5.8.3)(viem@2.31.0(typescript@5.8.3)(zod@3.25.57)) - '@edgeandnode/gds': 6.5.15(@emotion/is-prop-valid@0.8.8)(@emotion/react@11.14.0(@types/react@18.3.23)(react@18.3.1))(@theme-ui/core@0.17.2(@emotion/react@11.14.0(@types/react@18.3.23)(react@18.3.1))(react@18.3.1))(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(dayjs@1.11.13)(hardhat@2.24.2(typescript@5.8.3))(next@14.2.29(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1)(theme-ui@0.17.2(@emotion/react@11.14.0(@types/react@18.3.23)(react@18.3.1))(react@18.3.1))(typescript@5.8.3) + '@edgeandnode/common': 7.0.4(hardhat@2.25.0(typescript@5.8.3)) + '@edgeandnode/ens': 2.3.0(typescript@5.8.3)(viem@2.31.4(typescript@5.8.3)(zod@3.25.67)) + '@edgeandnode/gds': 6.6.2(@emotion/is-prop-valid@0.8.8)(@emotion/react@11.14.0(@types/react@18.3.23)(react@18.3.1))(@theme-ui/core@0.17.2(@emotion/react@11.14.0(@types/react@18.3.23)(react@18.3.1))(react@18.3.1))(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(dayjs@1.11.13)(hardhat@2.25.0(typescript@5.8.3))(next@14.2.30(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1)(theme-ui@0.17.2(@emotion/react@11.14.0(@types/react@18.3.23)(react@18.3.1))(react@18.3.1))(typescript@5.8.3) '@emotion/react': 11.14.0(@types/react@18.3.23)(react@18.3.1) '@graphql-typed-document-node/core': 3.2.0(graphql@16.11.0) '@radix-ui/react-collapsible': 1.1.11(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -8486,19 +8485,19 @@ snapshots: '@radix-ui/react-navigation-menu': 1.2.13(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-portal': 1.1.9(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/utils': 3.29.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@tanstack/react-query': 5.80.6(react@18.3.1) + '@tanstack/react-query': 5.81.2(react@18.3.1) '@theme-ui/css': 0.17.2(@emotion/react@11.14.0(@types/react@18.3.23)(react@18.3.1)) - '@web3icons/react': 4.0.14(react@18.3.1)(typescript@5.8.3) + '@web3icons/react': 4.0.16(react@18.3.1)(typescript@5.8.3) escape-string-regexp: 5.0.0 graphql: 16.11.0 graphql-request: 7.2.0(graphql@16.11.0) - motion: 12.16.0(@emotion/is-prop-valid@0.8.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + motion: 12.19.1(@emotion/is-prop-valid@0.8.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) tailwindcss: 3.4.17 theme-ui: 0.17.2(@emotion/react@11.14.0(@types/react@18.3.23)(react@18.3.1))(react@18.3.1) optionalDependencies: - next: 14.2.29(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 14.2.30(react-dom@18.3.1(react@18.3.1))(react@18.3.1) transitivePeerDependencies: - '@emotion/is-prop-valid' - '@types/react' @@ -8618,19 +8617,19 @@ snapshots: dns-packet: 5.6.1 typescript-logging: 1.0.1 - '@ensdomains/ensjs@4.0.2(typescript@5.8.3)(viem@2.31.0(typescript@5.8.3)(zod@3.25.57))(zod@3.25.57)': + '@ensdomains/ensjs@4.0.2(typescript@5.8.3)(viem@2.31.4(typescript@5.8.3)(zod@3.25.67))(zod@3.25.67)': dependencies: '@adraffy/ens-normalize': 1.10.1 '@ensdomains/address-encoder': 1.1.1 '@ensdomains/content-hash': 3.1.0-rc.1 '@ensdomains/dnsprovejs': 0.5.1 - abitype: 1.0.8(typescript@5.8.3)(zod@3.25.57) + abitype: 1.0.8(typescript@5.8.3)(zod@3.25.67) dns-packet: 5.6.1 graphql: 16.11.0 graphql-request: 6.1.0(graphql@16.11.0) pako: 2.1.0 ts-pattern: 5.7.1 - viem: 2.31.0(typescript@5.8.3)(zod@3.25.57) + viem: 2.31.4(typescript@5.8.3)(zod@3.25.67) transitivePeerDependencies: - encoding - typescript @@ -9247,7 +9246,7 @@ snapshots: dependencies: tslib: 2.8.1 - '@graphprotocol/contracts@7.1.2': {} + '@graphprotocol/contracts@7.3.0': {} '@graphql-typed-document-node/core@3.2.0(graphql@16.11.0)': dependencies: @@ -9260,9 +9259,9 @@ snapshots: '@headlessui/react@2.2.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@floating-ui/react': 0.26.28(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/focus': 3.20.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/interactions': 3.25.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@tanstack/react-virtual': 3.13.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/focus': 3.20.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/interactions': 3.25.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@tanstack/react-virtual': 3.13.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) use-sync-external-store: 1.5.0(react@18.3.1) @@ -9457,7 +9456,7 @@ snapshots: '@types/react': 18.3.23 react: 18.3.1 - '@mermaid-js/parser@0.4.0': + '@mermaid-js/parser@0.5.0': dependencies: langium: 3.3.1 @@ -9529,37 +9528,37 @@ snapshots: '@next/env@13.5.11': {} - '@next/env@14.2.29': {} + '@next/env@14.2.30': {} '@next/eslint-plugin-next@13.4.9': dependencies: glob: 7.1.7 - '@next/swc-darwin-arm64@14.2.29': + '@next/swc-darwin-arm64@14.2.30': optional: true - '@next/swc-darwin-x64@14.2.29': + '@next/swc-darwin-x64@14.2.30': optional: true - '@next/swc-linux-arm64-gnu@14.2.29': + '@next/swc-linux-arm64-gnu@14.2.30': optional: true - '@next/swc-linux-arm64-musl@14.2.29': + '@next/swc-linux-arm64-musl@14.2.30': optional: true - '@next/swc-linux-x64-gnu@14.2.29': + '@next/swc-linux-x64-gnu@14.2.30': optional: true - '@next/swc-linux-x64-musl@14.2.29': + '@next/swc-linux-x64-musl@14.2.30': optional: true - '@next/swc-win32-arm64-msvc@14.2.29': + '@next/swc-win32-arm64-msvc@14.2.30': optional: true - '@next/swc-win32-ia32-msvc@14.2.29': + '@next/swc-win32-ia32-msvc@14.2.30': optional: true - '@next/swc-win32-x64-msvc@14.2.29': + '@next/swc-win32-x64-msvc@14.2.30': optional: true '@noble/ciphers@1.3.0': {} @@ -9572,10 +9571,6 @@ snapshots: dependencies: '@noble/hashes': 1.7.2 - '@noble/curves@1.9.1': - dependencies: - '@noble/hashes': 1.8.0 - '@noble/curves@1.9.2': dependencies: '@noble/hashes': 1.8.0 @@ -9604,29 +9599,29 @@ snapshots: '@nolyfill/is-core-module@1.0.39': {} - '@nomicfoundation/edr-darwin-arm64@0.11.0': {} + '@nomicfoundation/edr-darwin-arm64@0.11.2': {} - '@nomicfoundation/edr-darwin-x64@0.11.0': {} + '@nomicfoundation/edr-darwin-x64@0.11.2': {} - '@nomicfoundation/edr-linux-arm64-gnu@0.11.0': {} + '@nomicfoundation/edr-linux-arm64-gnu@0.11.2': {} - '@nomicfoundation/edr-linux-arm64-musl@0.11.0': {} + '@nomicfoundation/edr-linux-arm64-musl@0.11.2': {} - '@nomicfoundation/edr-linux-x64-gnu@0.11.0': {} + '@nomicfoundation/edr-linux-x64-gnu@0.11.2': {} - '@nomicfoundation/edr-linux-x64-musl@0.11.0': {} + '@nomicfoundation/edr-linux-x64-musl@0.11.2': {} - '@nomicfoundation/edr-win32-x64-msvc@0.11.0': {} + '@nomicfoundation/edr-win32-x64-msvc@0.11.2': {} - '@nomicfoundation/edr@0.11.0': + '@nomicfoundation/edr@0.11.2': dependencies: - '@nomicfoundation/edr-darwin-arm64': 0.11.0 - '@nomicfoundation/edr-darwin-x64': 0.11.0 - '@nomicfoundation/edr-linux-arm64-gnu': 0.11.0 - '@nomicfoundation/edr-linux-arm64-musl': 0.11.0 - '@nomicfoundation/edr-linux-x64-gnu': 0.11.0 - '@nomicfoundation/edr-linux-x64-musl': 0.11.0 - '@nomicfoundation/edr-win32-x64-msvc': 0.11.0 + '@nomicfoundation/edr-darwin-arm64': 0.11.2 + '@nomicfoundation/edr-darwin-x64': 0.11.2 + '@nomicfoundation/edr-linux-arm64-gnu': 0.11.2 + '@nomicfoundation/edr-linux-arm64-musl': 0.11.2 + '@nomicfoundation/edr-linux-x64-gnu': 0.11.2 + '@nomicfoundation/edr-linux-x64-musl': 0.11.2 + '@nomicfoundation/edr-win32-x64-msvc': 0.11.2 '@nomicfoundation/solidity-analyzer-darwin-arm64@0.1.2': optional: true @@ -10181,10 +10176,10 @@ snapshots: '@radix-ui/rect@1.1.1': {} - '@react-aria/breadcrumbs@3.5.25(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@react-aria/breadcrumbs@3.5.26(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@react-aria/i18n': 3.12.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/link': 3.8.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/link': 3.8.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/utils': 3.29.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-types/breadcrumbs': 3.7.14(react@18.3.1) '@react-types/shared': 3.30.0(react@18.3.1) @@ -10192,10 +10187,10 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@react-aria/button@3.13.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@react-aria/button@3.13.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@react-aria/interactions': 3.25.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/toolbar': 3.0.0-beta.17(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/interactions': 3.25.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/toolbar': 3.0.0-beta.18(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/utils': 3.29.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-stately/toggle': 3.8.5(react@18.3.1) '@react-types/button': 3.12.2(react@18.3.1) @@ -10204,11 +10199,11 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@react-aria/calendar@3.8.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@react-aria/calendar@3.8.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@internationalized/date': 3.8.2 '@react-aria/i18n': 3.12.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/interactions': 3.25.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/interactions': 3.25.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/live-announcer': 3.4.3 '@react-aria/utils': 3.29.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-stately/calendar': 3.8.2(react@18.3.1) @@ -10219,12 +10214,12 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@react-aria/checkbox@3.15.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@react-aria/checkbox@3.15.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@react-aria/form': 3.0.17(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/interactions': 3.25.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/form': 3.0.18(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/interactions': 3.25.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/label': 3.7.19(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/toggle': 3.11.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/toggle': 3.11.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/utils': 3.29.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-stately/checkbox': 3.6.15(react@18.3.1) '@react-stately/form': 3.1.5(react@18.3.1) @@ -10235,16 +10230,16 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@react-aria/color@3.0.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@react-aria/color@3.0.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@react-aria/i18n': 3.12.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/interactions': 3.25.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/numberfield': 3.11.15(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/slider': 3.7.20(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/interactions': 3.25.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/numberfield': 3.11.16(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/slider': 3.7.21(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/spinbutton': 3.6.16(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/textfield': 3.17.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/textfield': 3.17.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/utils': 3.29.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/visually-hidden': 3.8.24(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/visually-hidden': 3.8.25(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-stately/color': 3.8.6(react@18.3.1) '@react-stately/form': 3.1.5(react@18.3.1) '@react-types/color': 3.0.6(react@18.3.1) @@ -10253,16 +10248,16 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@react-aria/combobox@3.12.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@react-aria/combobox@3.12.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@react-aria/focus': 3.20.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/focus': 3.20.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/i18n': 3.12.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/listbox': 3.14.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/listbox': 3.14.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/live-announcer': 3.4.3 - '@react-aria/menu': 3.18.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/overlays': 3.27.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/selection': 3.24.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/textfield': 3.17.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/menu': 3.18.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/overlays': 3.27.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/selection': 3.24.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/textfield': 3.17.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/utils': 3.29.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-stately/collections': 3.12.5(react@18.3.1) '@react-stately/combobox': 3.10.6(react@18.3.1) @@ -10274,15 +10269,15 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@react-aria/datepicker@3.14.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@react-aria/datepicker@3.14.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@internationalized/date': 3.8.2 '@internationalized/number': 3.6.3 '@internationalized/string': 3.2.7 - '@react-aria/focus': 3.20.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/form': 3.0.17(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/focus': 3.20.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/form': 3.0.18(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/i18n': 3.12.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/interactions': 3.25.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/interactions': 3.25.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/label': 3.7.19(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/spinbutton': 3.6.16(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/utils': 3.29.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -10297,10 +10292,10 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@react-aria/dialog@3.5.26(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@react-aria/dialog@3.5.27(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@react-aria/interactions': 3.25.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/overlays': 3.27.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/interactions': 3.25.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/overlays': 3.27.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/utils': 3.29.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-types/dialog': 3.5.19(react@18.3.1) '@react-types/shared': 3.30.0(react@18.3.1) @@ -10318,13 +10313,13 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@react-aria/dnd@3.10.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@react-aria/dnd@3.10.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@internationalized/string': 3.2.7 '@react-aria/i18n': 3.12.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/interactions': 3.25.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/interactions': 3.25.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/live-announcer': 3.4.3 - '@react-aria/overlays': 3.27.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/overlays': 3.27.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/utils': 3.29.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-stately/collections': 3.12.5(react@18.3.1) '@react-stately/dnd': 3.6.0(react@18.3.1) @@ -10334,9 +10329,9 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@react-aria/focus@3.20.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@react-aria/focus@3.20.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@react-aria/interactions': 3.25.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/interactions': 3.25.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/utils': 3.29.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-types/shared': 3.30.0(react@18.3.1) '@swc/helpers': 0.5.17 @@ -10344,9 +10339,9 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@react-aria/form@3.0.17(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@react-aria/form@3.0.18(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@react-aria/interactions': 3.25.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/interactions': 3.25.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/utils': 3.29.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-stately/form': 3.1.5(react@18.3.1) '@react-types/shared': 3.30.0(react@18.3.1) @@ -10354,13 +10349,13 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@react-aria/grid@3.14.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@react-aria/grid@3.14.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@react-aria/focus': 3.20.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/focus': 3.20.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/i18n': 3.12.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/interactions': 3.25.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/interactions': 3.25.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/live-announcer': 3.4.3 - '@react-aria/selection': 3.24.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/selection': 3.24.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/utils': 3.29.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-stately/collections': 3.12.5(react@18.3.1) '@react-stately/grid': 3.11.3(react@18.3.1) @@ -10372,13 +10367,13 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@react-aria/gridlist@3.13.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@react-aria/gridlist@3.13.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@react-aria/focus': 3.20.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/grid': 3.14.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/focus': 3.20.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/grid': 3.14.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/i18n': 3.12.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/interactions': 3.25.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/selection': 3.24.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/interactions': 3.25.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/selection': 3.24.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/utils': 3.29.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-stately/collections': 3.12.5(react@18.3.1) '@react-stately/list': 3.12.3(react@18.3.1) @@ -10401,7 +10396,7 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@react-aria/interactions@3.25.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@react-aria/interactions@3.25.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@react-aria/ssr': 3.9.9(react@18.3.1) '@react-aria/utils': 3.29.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -10428,9 +10423,9 @@ snapshots: react-dom: 18.3.1(react@18.3.1) use-sync-external-store: 1.5.0(react@18.3.1) - '@react-aria/link@3.8.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@react-aria/link@3.8.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@react-aria/interactions': 3.25.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/interactions': 3.25.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/utils': 3.29.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-types/link': 3.6.2(react@18.3.1) '@react-types/shared': 3.30.0(react@18.3.1) @@ -10438,11 +10433,11 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@react-aria/listbox@3.14.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@react-aria/listbox@3.14.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@react-aria/interactions': 3.25.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/interactions': 3.25.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/label': 3.7.19(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/selection': 3.24.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/selection': 3.24.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/utils': 3.29.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-stately/collections': 3.12.5(react@18.3.1) '@react-stately/list': 3.12.3(react@18.3.1) @@ -10456,13 +10451,13 @@ snapshots: dependencies: '@swc/helpers': 0.5.17 - '@react-aria/menu@3.18.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@react-aria/menu@3.18.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@react-aria/focus': 3.20.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/focus': 3.20.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/i18n': 3.12.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/interactions': 3.25.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/overlays': 3.27.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/selection': 3.24.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/interactions': 3.25.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/overlays': 3.27.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/selection': 3.24.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/utils': 3.29.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-stately/collections': 3.12.5(react@18.3.1) '@react-stately/menu': 3.9.5(react@18.3.1) @@ -10484,12 +10479,12 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@react-aria/numberfield@3.11.15(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@react-aria/numberfield@3.11.16(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@react-aria/i18n': 3.12.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/interactions': 3.25.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/interactions': 3.25.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/spinbutton': 3.6.16(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/textfield': 3.17.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/textfield': 3.17.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/utils': 3.29.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-stately/form': 3.1.5(react@18.3.1) '@react-stately/numberfield': 3.9.13(react@18.3.1) @@ -10500,14 +10495,14 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@react-aria/overlays@3.27.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@react-aria/overlays@3.27.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@react-aria/focus': 3.20.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/focus': 3.20.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/i18n': 3.12.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/interactions': 3.25.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/interactions': 3.25.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/ssr': 3.9.9(react@18.3.1) '@react-aria/utils': 3.29.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/visually-hidden': 3.8.24(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/visually-hidden': 3.8.25(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-stately/overlays': 3.6.17(react@18.3.1) '@react-types/button': 3.12.2(react@18.3.1) '@react-types/overlays': 3.8.16(react@18.3.1) @@ -10527,12 +10522,12 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@react-aria/radio@3.11.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@react-aria/radio@3.11.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@react-aria/focus': 3.20.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/form': 3.0.17(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/focus': 3.20.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/form': 3.0.18(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/i18n': 3.12.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/interactions': 3.25.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/interactions': 3.25.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/label': 3.7.19(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/utils': 3.29.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-stately/radio': 3.10.14(react@18.3.1) @@ -10542,10 +10537,10 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@react-aria/searchfield@3.8.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@react-aria/searchfield@3.8.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@react-aria/i18n': 3.12.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/textfield': 3.17.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/textfield': 3.17.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/utils': 3.29.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-stately/searchfield': 3.5.13(react@18.3.1) '@react-types/button': 3.12.2(react@18.3.1) @@ -10555,17 +10550,17 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@react-aria/select@3.15.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@react-aria/select@3.15.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@react-aria/form': 3.0.17(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/form': 3.0.18(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/i18n': 3.12.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/interactions': 3.25.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/interactions': 3.25.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/label': 3.7.19(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/listbox': 3.14.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/menu': 3.18.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/selection': 3.24.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/listbox': 3.14.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/menu': 3.18.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/selection': 3.24.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/utils': 3.29.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/visually-hidden': 3.8.24(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/visually-hidden': 3.8.25(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-stately/select': 3.6.14(react@18.3.1) '@react-types/button': 3.12.2(react@18.3.1) '@react-types/select': 3.9.13(react@18.3.1) @@ -10574,11 +10569,11 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@react-aria/selection@3.24.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@react-aria/selection@3.24.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@react-aria/focus': 3.20.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/focus': 3.20.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/i18n': 3.12.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/interactions': 3.25.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/interactions': 3.25.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/utils': 3.29.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-stately/selection': 3.20.3(react@18.3.1) '@react-types/shared': 3.30.0(react@18.3.1) @@ -10594,10 +10589,10 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@react-aria/slider@3.7.20(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@react-aria/slider@3.7.21(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@react-aria/i18n': 3.12.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/interactions': 3.25.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/interactions': 3.25.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/label': 3.7.19(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/utils': 3.29.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-stately/slider': 3.6.5(react@18.3.1) @@ -10623,9 +10618,9 @@ snapshots: '@swc/helpers': 0.5.17 react: 18.3.1 - '@react-aria/switch@3.7.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@react-aria/switch@3.7.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@react-aria/toggle': 3.11.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/toggle': 3.11.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-stately/toggle': 3.8.5(react@18.3.1) '@react-types/shared': 3.30.0(react@18.3.1) '@react-types/switch': 3.5.12(react@18.3.1) @@ -10633,15 +10628,15 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@react-aria/table@3.17.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@react-aria/table@3.17.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@react-aria/focus': 3.20.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/grid': 3.14.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/focus': 3.20.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/grid': 3.14.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/i18n': 3.12.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/interactions': 3.25.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/interactions': 3.25.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/live-announcer': 3.4.3 '@react-aria/utils': 3.29.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/visually-hidden': 3.8.24(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/visually-hidden': 3.8.25(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-stately/collections': 3.12.5(react@18.3.1) '@react-stately/flags': 3.1.2 '@react-stately/table': 3.14.3(react@18.3.1) @@ -10653,11 +10648,11 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@react-aria/tabs@3.10.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@react-aria/tabs@3.10.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@react-aria/focus': 3.20.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/focus': 3.20.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/i18n': 3.12.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/selection': 3.24.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/selection': 3.24.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/utils': 3.29.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-stately/tabs': 3.8.3(react@18.3.1) '@react-types/shared': 3.30.0(react@18.3.1) @@ -10666,13 +10661,13 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@react-aria/tag@3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@react-aria/tag@3.6.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@react-aria/gridlist': 3.13.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/gridlist': 3.13.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/i18n': 3.12.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/interactions': 3.25.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/interactions': 3.25.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/label': 3.7.19(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/selection': 3.24.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/selection': 3.24.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/utils': 3.29.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-stately/list': 3.12.3(react@18.3.1) '@react-types/button': 3.12.2(react@18.3.1) @@ -10681,10 +10676,10 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@react-aria/textfield@3.17.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@react-aria/textfield@3.17.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@react-aria/form': 3.0.17(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/interactions': 3.25.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/form': 3.0.18(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/interactions': 3.25.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/label': 3.7.19(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/utils': 3.29.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-stately/form': 3.1.5(react@18.3.1) @@ -10695,10 +10690,10 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@react-aria/toast@3.0.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@react-aria/toast@3.0.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@react-aria/i18n': 3.12.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/interactions': 3.25.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/interactions': 3.25.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/landmark': 3.0.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/utils': 3.29.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-stately/toast': 3.1.1(react@18.3.1) @@ -10708,9 +10703,9 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@react-aria/toggle@3.11.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@react-aria/toggle@3.11.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@react-aria/interactions': 3.25.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/interactions': 3.25.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/utils': 3.29.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-stately/toggle': 3.8.5(react@18.3.1) '@react-types/checkbox': 3.9.5(react@18.3.1) @@ -10719,9 +10714,9 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@react-aria/toolbar@3.0.0-beta.17(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@react-aria/toolbar@3.0.0-beta.18(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@react-aria/focus': 3.20.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/focus': 3.20.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/i18n': 3.12.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/utils': 3.29.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-types/shared': 3.30.0(react@18.3.1) @@ -10729,9 +10724,9 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@react-aria/tooltip@3.8.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@react-aria/tooltip@3.8.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@react-aria/interactions': 3.25.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/interactions': 3.25.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/utils': 3.29.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-stately/tooltip': 3.5.5(react@18.3.1) '@react-types/shared': 3.30.0(react@18.3.1) @@ -10740,11 +10735,11 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@react-aria/tree@3.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@react-aria/tree@3.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@react-aria/gridlist': 3.13.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/gridlist': 3.13.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/i18n': 3.12.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/selection': 3.24.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/selection': 3.24.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/utils': 3.29.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-stately/tree': 3.9.0(react@18.3.1) '@react-types/button': 3.12.2(react@18.3.1) @@ -10764,9 +10759,9 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@react-aria/visually-hidden@3.8.24(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@react-aria/visually-hidden@3.8.25(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@react-aria/interactions': 3.25.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/interactions': 3.25.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/utils': 3.29.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-types/shared': 3.30.0(react@18.3.1) '@swc/helpers': 0.5.17 @@ -11164,7 +11159,7 @@ snapshots: '@readme/openapi-parser@4.1.0(openapi-types@12.1.3)': dependencies: - '@apidevtools/json-schema-ref-parser': 13.0.4 + '@apidevtools/json-schema-ref-parser': 13.0.5 '@readme/better-ajv-errors': 2.3.2(ajv@8.17.1) '@readme/openapi-schemas': 3.1.0 '@types/json-schema': 7.0.15 @@ -11176,64 +11171,64 @@ snapshots: '@resvg/resvg-wasm@2.6.2': {} - '@rollup/rollup-android-arm-eabi@4.42.0': + '@rollup/rollup-android-arm-eabi@4.44.0': optional: true - '@rollup/rollup-android-arm64@4.42.0': + '@rollup/rollup-android-arm64@4.44.0': optional: true - '@rollup/rollup-darwin-arm64@4.42.0': + '@rollup/rollup-darwin-arm64@4.44.0': optional: true - '@rollup/rollup-darwin-x64@4.42.0': + '@rollup/rollup-darwin-x64@4.44.0': optional: true - '@rollup/rollup-freebsd-arm64@4.42.0': + '@rollup/rollup-freebsd-arm64@4.44.0': optional: true - '@rollup/rollup-freebsd-x64@4.42.0': + '@rollup/rollup-freebsd-x64@4.44.0': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.42.0': + '@rollup/rollup-linux-arm-gnueabihf@4.44.0': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.42.0': + '@rollup/rollup-linux-arm-musleabihf@4.44.0': optional: true - '@rollup/rollup-linux-arm64-gnu@4.42.0': + '@rollup/rollup-linux-arm64-gnu@4.44.0': optional: true - '@rollup/rollup-linux-arm64-musl@4.42.0': + '@rollup/rollup-linux-arm64-musl@4.44.0': optional: true - '@rollup/rollup-linux-loongarch64-gnu@4.42.0': + '@rollup/rollup-linux-loongarch64-gnu@4.44.0': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.42.0': + '@rollup/rollup-linux-powerpc64le-gnu@4.44.0': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.42.0': + '@rollup/rollup-linux-riscv64-gnu@4.44.0': optional: true - '@rollup/rollup-linux-riscv64-musl@4.42.0': + '@rollup/rollup-linux-riscv64-musl@4.44.0': optional: true - '@rollup/rollup-linux-s390x-gnu@4.42.0': + '@rollup/rollup-linux-s390x-gnu@4.44.0': optional: true - '@rollup/rollup-linux-x64-gnu@4.42.0': + '@rollup/rollup-linux-x64-gnu@4.44.0': optional: true - '@rollup/rollup-linux-x64-musl@4.42.0': + '@rollup/rollup-linux-x64-musl@4.44.0': optional: true - '@rollup/rollup-win32-arm64-msvc@4.42.0': + '@rollup/rollup-win32-arm64-msvc@4.44.0': optional: true - '@rollup/rollup-win32-ia32-msvc@4.42.0': + '@rollup/rollup-win32-ia32-msvc@4.44.0': optional: true - '@rollup/rollup-win32-x64-msvc@4.42.0': + '@rollup/rollup-win32-x64-msvc@4.44.0': optional: true '@rrweb/types@2.0.0-alpha.18': {} @@ -11262,7 +11257,7 @@ snapshots: '@scure/bip32@1.7.0': dependencies: - '@noble/curves': 1.9.1 + '@noble/curves': 1.9.2 '@noble/hashes': 1.8.0 '@scure/base': 1.2.6 @@ -11339,9 +11334,9 @@ snapshots: '@types/hast': 3.0.4 hast-util-to-html: 9.0.5 - '@shikijs/core@3.6.0': + '@shikijs/core@3.7.0': dependencies: - '@shikijs/types': 3.6.0 + '@shikijs/types': 3.7.0 '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 hast-util-to-html: 9.0.5 @@ -11352,9 +11347,9 @@ snapshots: '@shikijs/vscode-textmate': 10.0.2 oniguruma-to-es: 2.3.0 - '@shikijs/engine-javascript@3.6.0': + '@shikijs/engine-javascript@3.7.0': dependencies: - '@shikijs/types': 3.6.0 + '@shikijs/types': 3.7.0 '@shikijs/vscode-textmate': 10.0.2 oniguruma-to-es: 4.3.3 @@ -11363,26 +11358,26 @@ snapshots: '@shikijs/types': 1.29.2 '@shikijs/vscode-textmate': 10.0.2 - '@shikijs/engine-oniguruma@3.6.0': + '@shikijs/engine-oniguruma@3.7.0': dependencies: - '@shikijs/types': 3.6.0 + '@shikijs/types': 3.7.0 '@shikijs/vscode-textmate': 10.0.2 '@shikijs/langs@1.29.2': dependencies: '@shikijs/types': 1.29.2 - '@shikijs/langs@3.6.0': + '@shikijs/langs@3.7.0': dependencies: - '@shikijs/types': 3.6.0 + '@shikijs/types': 3.7.0 '@shikijs/themes@1.29.2': dependencies: '@shikijs/types': 1.29.2 - '@shikijs/themes@3.6.0': + '@shikijs/themes@3.7.0': dependencies: - '@shikijs/types': 3.6.0 + '@shikijs/types': 3.7.0 '@shikijs/twoslash@1.29.2(typescript@5.8.3)': dependencies: @@ -11398,7 +11393,7 @@ snapshots: '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 - '@shikijs/types@3.6.0': + '@shikijs/types@3.7.0': dependencies: '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 @@ -11489,24 +11484,24 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@tanstack/query-core@5.80.6': {} + '@tanstack/query-core@5.81.2': {} - '@tanstack/react-query@5.80.6(react@18.3.1)': + '@tanstack/react-query@5.81.2(react@18.3.1)': dependencies: - '@tanstack/query-core': 5.80.6 + '@tanstack/query-core': 5.81.2 react: 18.3.1 - '@tanstack/react-virtual@3.13.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@tanstack/react-virtual@3.13.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@tanstack/virtual-core': 3.13.10 + '@tanstack/virtual-core': 3.13.11 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@tanstack/virtual-core@3.13.10': {} + '@tanstack/virtual-core@3.13.11': {} '@theguild/remark-mermaid@0.1.3(react@18.3.1)': dependencies: - mermaid: 11.6.0 + mermaid: 11.7.0 react: 18.3.1 unist-util-visit: 5.0.0 transitivePeerDependencies: @@ -11584,11 +11579,11 @@ snapshots: '@types/bn.js@5.2.0': dependencies: - '@types/node': 22.15.31 + '@types/node': 22.15.33 '@types/concat-stream@2.0.3': dependencies: - '@types/node': 22.15.31 + '@types/node': 22.15.33 '@types/cookie@0.6.0': {} @@ -11719,8 +11714,6 @@ snapshots: dependencies: '@types/estree': 1.0.8 - '@types/estree@1.0.7': {} - '@types/estree@1.0.8': {} '@types/geojson@7946.0.16': {} @@ -11739,7 +11732,7 @@ snapshots: '@types/katex@0.16.7': {} - '@types/lodash@4.17.17': {} + '@types/lodash@4.17.19': {} '@types/lru-cache@5.1.1': {} @@ -11757,7 +11750,7 @@ snapshots: dependencies: '@types/unist': 3.0.3 - '@types/node@22.15.31': + '@types/node@22.15.33': dependencies: undici-types: 6.21.0 @@ -11791,6 +11784,10 @@ snapshots: '@types/unist@3.0.3': {} + '@types/vfile@4.0.0': + dependencies: + vfile: 6.0.3 + '@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3)': dependencies: '@eslint-community/regexpp': 4.12.1 @@ -11900,14 +11897,14 @@ snapshots: tiny-invariant: 1.3.3 toformat: 2.0.0 - '@uniswap/swap-router-contracts@1.3.1(hardhat@2.24.2(typescript@5.8.3))': + '@uniswap/swap-router-contracts@1.3.1(hardhat@2.25.0(typescript@5.8.3))': dependencies: '@openzeppelin/contracts': 3.4.2-solc-0.7 '@uniswap/v2-core': 1.0.1 '@uniswap/v3-core': 1.0.1 '@uniswap/v3-periphery': 1.4.4 dotenv: 14.3.2 - hardhat-watcher: 2.5.0(hardhat@2.24.2(typescript@5.8.3)) + hardhat-watcher: 2.5.0(hardhat@2.25.0(typescript@5.8.3)) transitivePeerDependencies: - hardhat @@ -11925,12 +11922,12 @@ snapshots: '@uniswap/v3-core': 1.0.1 base64-sol: 1.0.1 - '@uniswap/v3-sdk@3.25.2(hardhat@2.24.2(typescript@5.8.3))': + '@uniswap/v3-sdk@3.25.2(hardhat@2.25.0(typescript@5.8.3))': dependencies: '@ethersproject/abi': 5.8.0 '@ethersproject/solidity': 5.8.0 '@uniswap/sdk-core': 7.7.2 - '@uniswap/swap-router-contracts': 1.3.1(hardhat@2.24.2(typescript@5.8.3)) + '@uniswap/swap-router-contracts': 1.3.1(hardhat@2.25.0(typescript@5.8.3)) '@uniswap/v3-periphery': 1.4.4 '@uniswap/v3-staker': 1.0.0 tiny-invariant: 1.3.3 @@ -11944,57 +11941,63 @@ snapshots: '@uniswap/v3-core': 1.0.0 '@uniswap/v3-periphery': 1.4.4 - '@unrs/resolver-binding-darwin-arm64@1.7.13': + '@unrs/resolver-binding-android-arm-eabi@1.9.1': optional: true - '@unrs/resolver-binding-darwin-x64@1.7.13': + '@unrs/resolver-binding-android-arm64@1.9.1': optional: true - '@unrs/resolver-binding-freebsd-x64@1.7.13': + '@unrs/resolver-binding-darwin-arm64@1.9.1': optional: true - '@unrs/resolver-binding-linux-arm-gnueabihf@1.7.13': + '@unrs/resolver-binding-darwin-x64@1.9.1': optional: true - '@unrs/resolver-binding-linux-arm-musleabihf@1.7.13': + '@unrs/resolver-binding-freebsd-x64@1.9.1': optional: true - '@unrs/resolver-binding-linux-arm64-gnu@1.7.13': + '@unrs/resolver-binding-linux-arm-gnueabihf@1.9.1': optional: true - '@unrs/resolver-binding-linux-arm64-musl@1.7.13': + '@unrs/resolver-binding-linux-arm-musleabihf@1.9.1': optional: true - '@unrs/resolver-binding-linux-ppc64-gnu@1.7.13': + '@unrs/resolver-binding-linux-arm64-gnu@1.9.1': optional: true - '@unrs/resolver-binding-linux-riscv64-gnu@1.7.13': + '@unrs/resolver-binding-linux-arm64-musl@1.9.1': optional: true - '@unrs/resolver-binding-linux-riscv64-musl@1.7.13': + '@unrs/resolver-binding-linux-ppc64-gnu@1.9.1': optional: true - '@unrs/resolver-binding-linux-s390x-gnu@1.7.13': + '@unrs/resolver-binding-linux-riscv64-gnu@1.9.1': optional: true - '@unrs/resolver-binding-linux-x64-gnu@1.7.13': + '@unrs/resolver-binding-linux-riscv64-musl@1.9.1': optional: true - '@unrs/resolver-binding-linux-x64-musl@1.7.13': + '@unrs/resolver-binding-linux-s390x-gnu@1.9.1': optional: true - '@unrs/resolver-binding-wasm32-wasi@1.7.13': + '@unrs/resolver-binding-linux-x64-gnu@1.9.1': + optional: true + + '@unrs/resolver-binding-linux-x64-musl@1.9.1': + optional: true + + '@unrs/resolver-binding-wasm32-wasi@1.9.1': dependencies: '@napi-rs/wasm-runtime': 0.2.11 optional: true - '@unrs/resolver-binding-win32-arm64-msvc@1.7.13': + '@unrs/resolver-binding-win32-arm64-msvc@1.9.1': optional: true - '@unrs/resolver-binding-win32-ia32-msvc@1.7.13': + '@unrs/resolver-binding-win32-ia32-msvc@1.9.1': optional: true - '@unrs/resolver-binding-win32-x64-msvc@1.7.13': + '@unrs/resolver-binding-win32-x64-msvc@1.9.1': optional: true '@ver0/deep-equal@1.0.0': {} @@ -12006,13 +12009,13 @@ snapshots: chai: 5.2.0 tinyrainbow: 1.2.0 - '@vitest/mocker@2.1.9(vite@5.4.19(@types/node@22.15.31))': + '@vitest/mocker@2.1.9(vite@5.4.19(@types/node@22.15.33))': dependencies: '@vitest/spy': 2.1.9 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 5.4.19(@types/node@22.15.31) + vite: 5.4.19(@types/node@22.15.33) '@vitest/pretty-format@2.1.9': dependencies: @@ -12036,16 +12039,16 @@ snapshots: '@vitest/utils@2.1.9': dependencies: '@vitest/pretty-format': 2.1.9 - loupe: 3.1.3 + loupe: 3.1.4 tinyrainbow: 1.2.0 - '@web3icons/common@0.11.11(typescript@5.8.3)': + '@web3icons/common@0.11.13(typescript@5.8.3)': dependencies: typescript: 5.8.3 - '@web3icons/react@4.0.14(react@18.3.1)(typescript@5.8.3)': + '@web3icons/react@4.0.16(react@18.3.1)(typescript@5.8.3)': dependencies: - '@web3icons/common': 0.11.11(typescript@5.8.3) + '@web3icons/common': 0.11.13(typescript@5.8.3) react: 18.3.1 transitivePeerDependencies: - typescript @@ -12066,10 +12069,10 @@ snapshots: abbrev@2.0.0: {} - abitype@1.0.8(typescript@5.8.3)(zod@3.25.57): + abitype@1.0.8(typescript@5.8.3)(zod@3.25.67): optionalDependencies: typescript: 5.8.3 - zod: 3.25.57 + zod: 3.25.67 acorn-jsx@5.3.2(acorn@8.15.0): dependencies: @@ -12116,21 +12119,21 @@ snapshots: json-schema-traverse: 1.0.0 require-from-string: 2.0.2 - algoliasearch@5.27.0: - dependencies: - '@algolia/client-abtesting': 5.27.0 - '@algolia/client-analytics': 5.27.0 - '@algolia/client-common': 5.27.0 - '@algolia/client-insights': 5.27.0 - '@algolia/client-personalization': 5.27.0 - '@algolia/client-query-suggestions': 5.27.0 - '@algolia/client-search': 5.27.0 - '@algolia/ingestion': 1.27.0 - '@algolia/monitoring': 1.27.0 - '@algolia/recommend': 5.27.0 - '@algolia/requester-browser-xhr': 5.27.0 - '@algolia/requester-fetch': 5.27.0 - '@algolia/requester-node-http': 5.27.0 + algoliasearch@5.29.0: + dependencies: + '@algolia/client-abtesting': 5.29.0 + '@algolia/client-analytics': 5.29.0 + '@algolia/client-common': 5.29.0 + '@algolia/client-insights': 5.29.0 + '@algolia/client-personalization': 5.29.0 + '@algolia/client-query-suggestions': 5.29.0 + '@algolia/client-search': 5.29.0 + '@algolia/ingestion': 1.29.0 + '@algolia/monitoring': 1.29.0 + '@algolia/recommend': 5.29.0 + '@algolia/requester-browser-xhr': 5.29.0 + '@algolia/requester-fetch': 5.29.0 + '@algolia/requester-node-http': 5.29.0 ansi-align@3.0.1: dependencies: @@ -12260,14 +12263,14 @@ snapshots: attr-accept@2.2.5: {} - autoprefixer@10.4.21(postcss@8.5.4): + autoprefixer@10.4.21(postcss@8.5.6): dependencies: browserslist: 4.25.0 - caniuse-lite: 1.0.30001721 + caniuse-lite: 1.0.30001724 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.1.1 - postcss: 8.5.4 + postcss: 8.5.6 postcss-value-parser: 4.2.0 available-typed-arrays@1.0.7: @@ -12341,12 +12344,12 @@ snapshots: widest-line: 3.1.0 wrap-ansi: 7.0.0 - brace-expansion@1.1.11: + brace-expansion@1.1.12: dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 - brace-expansion@2.0.1: + brace-expansion@2.0.2: dependencies: balanced-match: 1.0.2 @@ -12360,8 +12363,8 @@ snapshots: browserslist@4.25.0: dependencies: - caniuse-lite: 1.0.30001721 - electron-to-chromium: 1.5.166 + caniuse-lite: 1.0.30001724 + electron-to-chromium: 1.5.172 node-releases: 2.0.19 update-browserslist-db: 1.1.3(browserslist@4.25.0) @@ -12410,7 +12413,7 @@ snapshots: camelize@1.0.1: {} - caniuse-lite@1.0.30001721: {} + caniuse-lite@1.0.30001724: {} ccount@2.0.1: {} @@ -12419,7 +12422,7 @@ snapshots: assertion-error: 2.0.1 check-error: 2.1.1 deep-eql: 5.0.2 - loupe: 3.1.3 + loupe: 3.1.4 pathval: 2.0.0 chalk@4.1.2: @@ -12627,7 +12630,7 @@ snapshots: cssesc@3.0.0: {} - cssstyle@4.4.0: + cssstyle@4.5.0: dependencies: '@asamuzakjp/css-color': 3.2.0 rrweb-cssom: 0.8.0 @@ -12865,7 +12868,7 @@ snapshots: decimal.js@10.5.0: {} - decode-named-character-reference@1.1.0: + decode-named-character-reference@1.2.0: dependencies: character-entities: 2.0.2 @@ -12955,7 +12958,7 @@ snapshots: eastasianwidth@0.2.0: {} - electron-to-chromium@1.5.166: {} + electron-to-chromium@1.5.172: {} elliptic@6.6.1: dependencies: @@ -13208,7 +13211,7 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.31.0)(eslint@8.57.1): + eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@8.57.1): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.4.1(supports-color@8.1.1) @@ -13217,13 +13220,13 @@ snapshots: is-bun-module: 2.0.0 stable-hash: 0.0.5 tinyglobby: 0.2.14 - unrs-resolver: 1.7.13 + unrs-resolver: 1.9.1 optionalDependencies: - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1) transitivePeerDependencies: - supports-color - eslint-mdx@3.4.2(eslint@8.57.1): + eslint-mdx@3.5.0(eslint@8.57.1): dependencies: acorn: 8.15.0 acorn-jsx: 5.3.2(acorn@8.15.0) @@ -13234,7 +13237,6 @@ snapshots: remark-parse: 11.0.0 remark-stringify: 11.0.0 synckit: 0.11.8 - tslib: 2.8.1 unified: 11.0.5 unified-engine: 11.2.2 unist-util-visit: 5.0.0 @@ -13244,18 +13246,18 @@ snapshots: - bluebird - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1): + eslint-module-utils@2.12.1(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1): dependencies: debug: 3.2.7 optionalDependencies: '@typescript-eslint/parser': 6.21.0(eslint@8.57.1)(typescript@5.8.3) eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.31.0)(eslint@8.57.1) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@8.57.1) transitivePeerDependencies: - supports-color - eslint-plugin-import@2.31.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1): + eslint-plugin-import@2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -13266,7 +13268,7 @@ snapshots: doctrine: 2.1.0 eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1) + eslint-module-utils: 2.12.1(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -13303,10 +13305,10 @@ snapshots: safe-regex-test: 1.1.0 string.prototype.includes: 2.0.1 - eslint-plugin-mdx@3.4.2(eslint@8.57.1): + eslint-plugin-mdx@3.5.0(eslint@8.57.1): dependencies: eslint: 8.57.1 - eslint-mdx: 3.4.2(eslint@8.57.1) + eslint-mdx: 3.5.0(eslint@8.57.1) mdast-util-from-markdown: 2.0.2 mdast-util-mdx: 3.0.0 micromark-extension-mdxjs: 3.0.0 @@ -13314,7 +13316,6 @@ snapshots: remark-parse: 11.0.0 remark-stringify: 11.0.0 synckit: 0.11.8 - tslib: 2.8.1 unified: 11.0.5 vfile: 6.0.3 transitivePeerDependencies: @@ -13547,7 +13548,7 @@ snapshots: expect-type@1.2.1: {} - exsolve@1.0.5: {} + exsolve@1.0.7: {} extend-shallow@2.0.1: dependencies: @@ -13623,7 +13624,7 @@ snapshots: dependencies: magic-string: 0.30.17 mlly: 1.7.4 - rollup: 4.42.0 + rollup: 4.44.0 flat-cache@3.2.0: dependencies: @@ -13662,10 +13663,10 @@ snapshots: fraction.js@4.3.7: {} - framer-motion@12.16.0(@emotion/is-prop-valid@0.8.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + framer-motion@12.19.1(@emotion/is-prop-valid@0.8.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - motion-dom: 12.16.0 - motion-utils: 12.12.1 + motion-dom: 12.19.0 + motion-utils: 12.19.0 tslib: 2.8.1 optionalDependencies: '@emotion/is-prop-valid': 0.8.8 @@ -13850,16 +13851,16 @@ snapshots: hachure-fill@0.5.2: {} - hardhat-watcher@2.5.0(hardhat@2.24.2(typescript@5.8.3)): + hardhat-watcher@2.5.0(hardhat@2.25.0(typescript@5.8.3)): dependencies: chokidar: 3.6.0 - hardhat: 2.24.2(typescript@5.8.3) + hardhat: 2.25.0(typescript@5.8.3) - hardhat@2.24.2(typescript@5.8.3): + hardhat@2.25.0(typescript@5.8.3): dependencies: '@ethereumjs/util': 9.1.0 '@ethersproject/abi': 5.8.0 - '@nomicfoundation/edr': 0.11.0 + '@nomicfoundation/edr': 0.11.2 '@nomicfoundation/solidity-analyzer': 0.1.2 '@sentry/node': 5.30.0 '@types/bn.js': 5.2.0 @@ -13965,15 +13966,6 @@ snapshots: vfile-location: 5.0.3 web-namespaces: 2.0.1 - hast-util-has-property@3.0.0: - dependencies: - '@types/hast': 3.0.4 - - hast-util-interactive@3.0.0: - dependencies: - '@types/hast': 3.0.4 - hast-util-has-property: 3.0.0 - hast-util-is-element@3.0.0: dependencies: '@types/hast': 3.0.4 @@ -13991,7 +13983,7 @@ snapshots: mdast-util-mdx-jsx: 3.2.0 property-information: 7.1.0 space-separated-tokens: 2.0.2 - style-to-js: 1.1.16 + style-to-js: 1.1.17 transitivePeerDependencies: - supports-color @@ -14026,7 +14018,7 @@ snapshots: mdast-util-mdxjs-esm: 2.0.1 property-information: 7.1.0 space-separated-tokens: 2.0.2 - style-to-js: 1.1.16 + style-to-js: 1.1.17 unist-util-position: 5.0.0 zwitch: 2.0.4 transitivePeerDependencies: @@ -14060,7 +14052,7 @@ snapshots: mdast-util-mdxjs-esm: 2.0.1 property-information: 7.1.0 space-separated-tokens: 2.0.2 - style-to-js: 1.1.16 + style-to-js: 1.1.17 unist-util-position: 5.0.0 vfile-message: 4.0.2 transitivePeerDependencies: @@ -14091,6 +14083,8 @@ snapshots: dependencies: '@types/hast': 3.0.4 + hast@1.0.0: {} + hastscript@9.0.1: dependencies: '@types/hast': 3.0.4 @@ -14442,7 +14436,7 @@ snapshots: jsdom@24.1.3: dependencies: - cssstyle: 4.4.0 + cssstyle: 4.5.0 data-urls: 5.0.0 decimal.js: 10.5.0 form-data: 4.0.3 @@ -14599,7 +14593,7 @@ snapshots: dependencies: js-tokens: 4.0.0 - loupe@3.1.3: {} + loupe@3.1.4: {} lru-cache@10.4.3: {} @@ -14645,7 +14639,7 @@ snapshots: dependencies: '@types/mdast': 4.0.4 '@types/unist': 3.0.3 - decode-named-character-reference: 1.1.0 + decode-named-character-reference: 1.2.0 devlop: 1.1.0 mdast-util-to-string: 4.0.0 micromark: 4.0.2 @@ -14826,11 +14820,11 @@ snapshots: merge2@1.4.1: {} - mermaid@11.6.0: + mermaid@11.7.0: dependencies: '@braintree/sanitize-url': 7.1.1 '@iconify/utils': 2.3.0 - '@mermaid-js/parser': 0.4.0 + '@mermaid-js/parser': 0.5.0 '@types/d3': 7.4.3 cytoscape: 3.32.0 cytoscape-cose-bilkent: 4.1.0(cytoscape@3.32.0) @@ -14865,7 +14859,7 @@ snapshots: micromark-core-commonmark@2.0.3: dependencies: - decode-named-character-reference: 1.1.0 + decode-named-character-reference: 1.2.0 devlop: 1.1.0 micromark-factory-destination: 2.0.1 micromark-factory-label: 2.0.1 @@ -15078,7 +15072,7 @@ snapshots: micromark-util-decode-string@2.0.1: dependencies: - decode-named-character-reference: 1.1.0 + decode-named-character-reference: 1.2.0 micromark-util-character: 2.1.1 micromark-util-decode-numeric-character-reference: 2.0.2 micromark-util-symbol: 2.0.1 @@ -15126,7 +15120,7 @@ snapshots: dependencies: '@types/debug': 4.1.12 debug: 4.4.1(supports-color@8.1.1) - decode-named-character-reference: 1.1.0 + decode-named-character-reference: 1.2.0 devlop: 1.1.0 micromark-core-commonmark: 2.0.3 micromark-factory-space: 2.0.1 @@ -15184,19 +15178,19 @@ snapshots: minimatch@3.1.2: dependencies: - brace-expansion: 1.1.11 + brace-expansion: 1.1.12 minimatch@5.1.6: dependencies: - brace-expansion: 2.0.1 + brace-expansion: 2.0.2 minimatch@9.0.3: dependencies: - brace-expansion: 2.0.1 + brace-expansion: 2.0.2 minimatch@9.0.5: dependencies: - brace-expansion: 2.0.1 + brace-expansion: 2.0.2 minimist@1.2.8: {} @@ -15246,15 +15240,15 @@ snapshots: yargs-parser: 20.2.9 yargs-unparser: 2.0.0 - motion-dom@12.16.0: + motion-dom@12.19.0: dependencies: - motion-utils: 12.12.1 + motion-utils: 12.19.0 - motion-utils@12.12.1: {} + motion-utils@12.19.0: {} - motion@12.16.0(@emotion/is-prop-valid@0.8.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + motion@12.19.1(@emotion/is-prop-valid@0.8.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - framer-motion: 12.16.0(@emotion/is-prop-valid@0.8.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + framer-motion: 12.19.1(@emotion/is-prop-valid@0.8.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) tslib: 2.8.1 optionalDependencies: '@emotion/is-prop-valid': 0.8.8 @@ -15281,46 +15275,46 @@ snapshots: negotiator@1.0.0: {} - next-seo@6.8.0(next@14.2.29(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + next-seo@6.8.0(next@14.2.30(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - next: 14.2.29(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 14.2.30(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - next-sitemap@4.2.3(next@14.2.29(react-dom@18.3.1(react@18.3.1))(react@18.3.1)): + next-sitemap@4.2.3(next@14.2.30(react-dom@18.3.1(react@18.3.1))(react@18.3.1)): dependencies: '@corex/deepmerge': 4.0.43 '@next/env': 13.5.11 fast-glob: 3.3.3 minimist: 1.2.8 - next: 14.2.29(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 14.2.30(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - next@14.2.29(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + next@14.2.30(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@next/env': 14.2.29 + '@next/env': 14.2.30 '@swc/helpers': 0.5.5 busboy: 1.6.0 - caniuse-lite: 1.0.30001721 + caniuse-lite: 1.0.30001724 graceful-fs: 4.2.11 postcss: 8.4.31 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) styled-jsx: 5.1.1(react@18.3.1) optionalDependencies: - '@next/swc-darwin-arm64': 14.2.29 - '@next/swc-darwin-x64': 14.2.29 - '@next/swc-linux-arm64-gnu': 14.2.29 - '@next/swc-linux-arm64-musl': 14.2.29 - '@next/swc-linux-x64-gnu': 14.2.29 - '@next/swc-linux-x64-musl': 14.2.29 - '@next/swc-win32-arm64-msvc': 14.2.29 - '@next/swc-win32-ia32-msvc': 14.2.29 - '@next/swc-win32-x64-msvc': 14.2.29 + '@next/swc-darwin-arm64': 14.2.30 + '@next/swc-darwin-x64': 14.2.30 + '@next/swc-linux-arm64-gnu': 14.2.30 + '@next/swc-linux-arm64-musl': 14.2.30 + '@next/swc-linux-x64-gnu': 14.2.30 + '@next/swc-linux-x64-musl': 14.2.30 + '@next/swc-win32-arm64-msvc': 14.2.30 + '@next/swc-win32-ia32-msvc': 14.2.30 + '@next/swc-win32-x64-msvc': 14.2.30 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros - nextra@3.3.1(@types/react@18.3.23)(acorn@8.15.0)(next@14.2.29(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3): + nextra@3.3.1(@types/react@18.3.23)(acorn@8.15.0)(next@14.2.30(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3): dependencies: '@formatjs/intl-localematcher': 0.5.10 '@headlessui/react': 2.2.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -15343,7 +15337,7 @@ snapshots: mdast-util-gfm: 3.1.0 mdast-util-to-hast: 13.2.0 negotiator: 1.0.0 - next: 14.2.29(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 14.2.30(react-dom@18.3.1(react@18.3.1))(react@18.3.1) p-limit: 6.2.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -15362,8 +15356,8 @@ snapshots: unist-util-remove: 4.0.0 unist-util-visit: 5.0.0 yaml: 2.8.0 - zod: 3.25.57 - zod-validation-error: 3.4.1(zod@3.25.57) + zod: 3.25.67 + zod-validation-error: 3.5.2(zod@3.25.67) transitivePeerDependencies: - '@types/react' - acorn @@ -15533,15 +15527,15 @@ snapshots: object-keys: 1.1.1 safe-push-apply: 1.0.0 - ox@0.7.1(typescript@5.8.3)(zod@3.25.57): + ox@0.8.1(typescript@5.8.3)(zod@3.25.67): dependencies: '@adraffy/ens-normalize': 1.11.0 '@noble/ciphers': 1.3.0 - '@noble/curves': 1.9.1 + '@noble/curves': 1.9.2 '@noble/hashes': 1.8.0 '@scure/bip32': 1.7.0 '@scure/bip39': 1.6.0 - abitype: 1.0.8(typescript@5.8.3)(zod@3.25.57) + abitype: 1.0.8(typescript@5.8.3)(zod@3.25.67) eventemitter3: 5.0.1 optionalDependencies: typescript: 5.8.3 @@ -15586,7 +15580,7 @@ snapshots: '@types/unist': 2.0.11 character-entities-legacy: 3.0.0 character-reference-invalid: 2.0.1 - decode-named-character-reference: 1.1.0 + decode-named-character-reference: 1.2.0 is-alphanumerical: 2.0.1 is-decimal: 2.0.1 is-hexadecimal: 2.0.1 @@ -15673,7 +15667,7 @@ snapshots: pkg-types@2.1.0: dependencies: confbox: 0.2.2 - exsolve: 1.0.5 + exsolve: 1.0.7 pathe: 2.0.3 pluralize@8.0.0: {} @@ -15691,37 +15685,37 @@ snapshots: possible-typed-array-names@1.1.0: {} - postcss-import@15.1.0(postcss@8.5.4): + postcss-import@15.1.0(postcss@8.5.6): dependencies: - postcss: 8.5.4 + postcss: 8.5.6 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.10 - postcss-js@4.0.1(postcss@8.5.4): + postcss-js@4.0.1(postcss@8.5.6): dependencies: camelcase-css: 2.0.1 - postcss: 8.5.4 + postcss: 8.5.6 - postcss-load-config@4.0.2(postcss@8.5.4): + postcss-load-config@4.0.2(postcss@8.5.6): dependencies: lilconfig: 3.1.3 yaml: 2.8.0 optionalDependencies: - postcss: 8.5.4 + postcss: 8.5.6 - postcss-load-config@6.0.1(jiti@1.21.7)(postcss@8.5.4)(tsx@4.19.4)(yaml@2.8.0): + postcss-load-config@6.0.1(jiti@1.21.7)(postcss@8.5.6)(tsx@4.20.3)(yaml@2.8.0): dependencies: lilconfig: 3.1.3 optionalDependencies: jiti: 1.21.7 - postcss: 8.5.4 - tsx: 4.19.4 + postcss: 8.5.6 + tsx: 4.20.3 yaml: 2.8.0 - postcss-nested@6.2.0(postcss@8.5.4): + postcss-nested@6.2.0(postcss@8.5.6): dependencies: - postcss: 8.5.4 + postcss: 8.5.6 postcss-selector-parser: 6.1.2 postcss-selector-parser@6.1.2: @@ -15737,7 +15731,7 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 - postcss@8.5.4: + postcss@8.5.6: dependencies: nanoid: 3.3.11 picocolors: 1.1.1 @@ -15745,13 +15739,13 @@ snapshots: prelude-ls@1.2.1: {} - prettier-plugin-tailwindcss@0.6.12(prettier@3.5.3): + prettier-plugin-tailwindcss@0.6.13(prettier@3.6.1): dependencies: - prettier: 3.5.3 + prettier: 3.6.1 prettier@2.8.8: {} - prettier@3.5.3: {} + prettier@3.6.1: {} printable-characters@1.0.42: {} @@ -15814,49 +15808,49 @@ snapshots: iconv-lite: 0.4.24 unpipe: 1.0.0 - react-aria@3.41.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + react-aria@3.41.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@internationalized/string': 3.2.7 - '@react-aria/breadcrumbs': 3.5.25(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/button': 3.13.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/calendar': 3.8.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/checkbox': 3.15.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/color': 3.0.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/combobox': 3.12.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/datepicker': 3.14.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/dialog': 3.5.26(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/breadcrumbs': 3.5.26(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/button': 3.13.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/calendar': 3.8.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/checkbox': 3.15.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/color': 3.0.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/combobox': 3.12.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/datepicker': 3.14.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/dialog': 3.5.27(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/disclosure': 3.0.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/dnd': 3.10.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/focus': 3.20.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/gridlist': 3.13.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/dnd': 3.10.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/focus': 3.20.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/gridlist': 3.13.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/i18n': 3.12.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/interactions': 3.25.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/interactions': 3.25.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/label': 3.7.19(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/landmark': 3.0.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/link': 3.8.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/listbox': 3.14.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/menu': 3.18.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/link': 3.8.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/listbox': 3.14.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/menu': 3.18.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/meter': 3.4.24(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/numberfield': 3.11.15(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/overlays': 3.27.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/numberfield': 3.11.16(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/overlays': 3.27.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/progress': 3.4.24(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/radio': 3.11.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/searchfield': 3.8.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/select': 3.15.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/selection': 3.24.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/radio': 3.11.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/searchfield': 3.8.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/select': 3.15.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/selection': 3.24.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/separator': 3.4.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/slider': 3.7.20(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/slider': 3.7.21(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/ssr': 3.9.9(react@18.3.1) - '@react-aria/switch': 3.7.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/table': 3.17.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/tabs': 3.10.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/tag': 3.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/textfield': 3.17.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/toast': 3.0.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/tooltip': 3.8.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/tree': 3.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/switch': 3.7.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/table': 3.17.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/tabs': 3.10.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/tag': 3.6.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/textfield': 3.17.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/toast': 3.0.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/tooltip': 3.8.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/tree': 3.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/utils': 3.29.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/visually-hidden': 3.8.24(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/visually-hidden': 3.8.25(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-types/shared': 3.30.0(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -15950,7 +15944,7 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-virtuoso@4.12.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + react-virtuoso@4.13.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -15986,7 +15980,7 @@ snapshots: dependencies: decimal.js-light: 2.5.1 - recharts@2.15.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + recharts@2.15.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: clsx: 2.1.1 eventemitter3: 4.0.7 @@ -16305,30 +16299,30 @@ snapshots: dependencies: estree-walker: 0.6.1 - rollup@4.42.0: + rollup@4.44.0: dependencies: - '@types/estree': 1.0.7 + '@types/estree': 1.0.8 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.42.0 - '@rollup/rollup-android-arm64': 4.42.0 - '@rollup/rollup-darwin-arm64': 4.42.0 - '@rollup/rollup-darwin-x64': 4.42.0 - '@rollup/rollup-freebsd-arm64': 4.42.0 - '@rollup/rollup-freebsd-x64': 4.42.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.42.0 - '@rollup/rollup-linux-arm-musleabihf': 4.42.0 - '@rollup/rollup-linux-arm64-gnu': 4.42.0 - '@rollup/rollup-linux-arm64-musl': 4.42.0 - '@rollup/rollup-linux-loongarch64-gnu': 4.42.0 - '@rollup/rollup-linux-powerpc64le-gnu': 4.42.0 - '@rollup/rollup-linux-riscv64-gnu': 4.42.0 - '@rollup/rollup-linux-riscv64-musl': 4.42.0 - '@rollup/rollup-linux-s390x-gnu': 4.42.0 - '@rollup/rollup-linux-x64-gnu': 4.42.0 - '@rollup/rollup-linux-x64-musl': 4.42.0 - '@rollup/rollup-win32-arm64-msvc': 4.42.0 - '@rollup/rollup-win32-ia32-msvc': 4.42.0 - '@rollup/rollup-win32-x64-msvc': 4.42.0 + '@rollup/rollup-android-arm-eabi': 4.44.0 + '@rollup/rollup-android-arm64': 4.44.0 + '@rollup/rollup-darwin-arm64': 4.44.0 + '@rollup/rollup-darwin-x64': 4.44.0 + '@rollup/rollup-freebsd-arm64': 4.44.0 + '@rollup/rollup-freebsd-x64': 4.44.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.44.0 + '@rollup/rollup-linux-arm-musleabihf': 4.44.0 + '@rollup/rollup-linux-arm64-gnu': 4.44.0 + '@rollup/rollup-linux-arm64-musl': 4.44.0 + '@rollup/rollup-linux-loongarch64-gnu': 4.44.0 + '@rollup/rollup-linux-powerpc64le-gnu': 4.44.0 + '@rollup/rollup-linux-riscv64-gnu': 4.44.0 + '@rollup/rollup-linux-riscv64-musl': 4.44.0 + '@rollup/rollup-linux-s390x-gnu': 4.44.0 + '@rollup/rollup-linux-x64-gnu': 4.44.0 + '@rollup/rollup-linux-x64-musl': 4.44.0 + '@rollup/rollup-win32-arm64-msvc': 4.44.0 + '@rollup/rollup-win32-ia32-msvc': 4.44.0 + '@rollup/rollup-win32-x64-msvc': 4.44.0 fsevents: 2.3.3 roughjs@4.6.6: @@ -16348,7 +16342,7 @@ snapshots: rrweb-snapshot@2.0.0-alpha.18: dependencies: - postcss: 8.5.4 + postcss: 8.5.6 rrweb@2.0.0-alpha.18: dependencies: @@ -16503,14 +16497,14 @@ snapshots: '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 - shiki@3.6.0: + shiki@3.7.0: dependencies: - '@shikijs/core': 3.6.0 - '@shikijs/engine-javascript': 3.6.0 - '@shikijs/engine-oniguruma': 3.6.0 - '@shikijs/langs': 3.6.0 - '@shikijs/themes': 3.6.0 - '@shikijs/types': 3.6.0 + '@shikijs/core': 3.7.0 + '@shikijs/engine-javascript': 3.7.0 + '@shikijs/engine-oniguruma': 3.7.0 + '@shikijs/langs': 3.7.0 + '@shikijs/themes': 3.7.0 + '@shikijs/types': 3.7.0 '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 @@ -16766,11 +16760,11 @@ snapshots: strnum@2.1.1: {} - style-to-js@1.1.16: + style-to-js@1.1.17: dependencies: - style-to-object: 1.0.8 + style-to-object: 1.0.9 - style-to-object@1.0.8: + style-to-object@1.0.9: dependencies: inline-style-parser: 0.2.4 @@ -16847,11 +16841,11 @@ snapshots: normalize-path: 3.0.0 object-hash: 3.0.0 picocolors: 1.1.1 - postcss: 8.5.4 - postcss-import: 15.1.0(postcss@8.5.4) - postcss-js: 4.0.1(postcss@8.5.4) - postcss-load-config: 4.0.2(postcss@8.5.4) - postcss-nested: 6.2.0(postcss@8.5.4) + postcss: 8.5.6 + postcss-import: 15.1.0(postcss@8.5.6) + postcss-js: 4.0.1(postcss@8.5.6) + postcss-load-config: 4.0.2(postcss@8.5.6) + postcss-nested: 6.2.0(postcss@8.5.6) postcss-selector-parser: 6.1.2 resolve: 1.22.10 sucrase: 3.35.0 @@ -16896,7 +16890,7 @@ snapshots: fdir: 6.4.6(picomatch@4.0.2) picomatch: 4.0.2 - tinypool@1.1.0: {} + tinypool@1.1.1: {} tinyrainbow@1.2.0: {} @@ -16971,7 +16965,7 @@ snapshots: tsort@0.0.1: {} - tsup@8.5.0(jiti@1.21.7)(postcss@8.5.4)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.8.0): + tsup@8.5.0(jiti@1.21.7)(postcss@8.5.6)(tsx@4.20.3)(typescript@5.8.3)(yaml@2.8.0): dependencies: bundle-require: 5.1.0(esbuild@0.25.5) cac: 6.7.14 @@ -16982,16 +16976,16 @@ snapshots: fix-dts-default-cjs-exports: 1.0.1 joycon: 3.1.1 picocolors: 1.1.1 - postcss-load-config: 6.0.1(jiti@1.21.7)(postcss@8.5.4)(tsx@4.19.4)(yaml@2.8.0) + postcss-load-config: 6.0.1(jiti@1.21.7)(postcss@8.5.6)(tsx@4.20.3)(yaml@2.8.0) resolve-from: 5.0.0 - rollup: 4.42.0 + rollup: 4.44.0 source-map: 0.8.0-beta.0 sucrase: 3.35.0 tinyexec: 0.3.2 tinyglobby: 0.2.14 tree-kill: 1.2.2 optionalDependencies: - postcss: 8.5.4 + postcss: 8.5.6 typescript: 5.8.3 transitivePeerDependencies: - jiti @@ -16999,7 +16993,7 @@ snapshots: - tsx - yaml - tsx@4.19.4: + tsx@4.20.3: dependencies: esbuild: 0.25.5 get-tsconfig: 4.10.1 @@ -17120,7 +17114,7 @@ snapshots: unenv@2.0.0-rc.14: dependencies: defu: 6.1.4 - exsolve: 1.0.5 + exsolve: 1.0.7 ohash: 2.0.11 pathe: 2.0.3 ufo: 1.6.1 @@ -17135,7 +17129,7 @@ snapshots: '@types/concat-stream': 2.0.3 '@types/debug': 4.1.12 '@types/is-empty': 1.2.3 - '@types/node': 22.15.31 + '@types/node': 22.15.33 '@types/unist': 3.0.3 concat-stream: 2.0.0 debug: 4.4.1(supports-color@8.1.1) @@ -17256,27 +17250,29 @@ snapshots: unpipe@1.0.0: {} - unrs-resolver@1.7.13: + unrs-resolver@1.9.1: dependencies: napi-postinstall: 0.2.4 optionalDependencies: - '@unrs/resolver-binding-darwin-arm64': 1.7.13 - '@unrs/resolver-binding-darwin-x64': 1.7.13 - '@unrs/resolver-binding-freebsd-x64': 1.7.13 - '@unrs/resolver-binding-linux-arm-gnueabihf': 1.7.13 - '@unrs/resolver-binding-linux-arm-musleabihf': 1.7.13 - '@unrs/resolver-binding-linux-arm64-gnu': 1.7.13 - '@unrs/resolver-binding-linux-arm64-musl': 1.7.13 - '@unrs/resolver-binding-linux-ppc64-gnu': 1.7.13 - '@unrs/resolver-binding-linux-riscv64-gnu': 1.7.13 - '@unrs/resolver-binding-linux-riscv64-musl': 1.7.13 - '@unrs/resolver-binding-linux-s390x-gnu': 1.7.13 - '@unrs/resolver-binding-linux-x64-gnu': 1.7.13 - '@unrs/resolver-binding-linux-x64-musl': 1.7.13 - '@unrs/resolver-binding-wasm32-wasi': 1.7.13 - '@unrs/resolver-binding-win32-arm64-msvc': 1.7.13 - '@unrs/resolver-binding-win32-ia32-msvc': 1.7.13 - '@unrs/resolver-binding-win32-x64-msvc': 1.7.13 + '@unrs/resolver-binding-android-arm-eabi': 1.9.1 + '@unrs/resolver-binding-android-arm64': 1.9.1 + '@unrs/resolver-binding-darwin-arm64': 1.9.1 + '@unrs/resolver-binding-darwin-x64': 1.9.1 + '@unrs/resolver-binding-freebsd-x64': 1.9.1 + '@unrs/resolver-binding-linux-arm-gnueabihf': 1.9.1 + '@unrs/resolver-binding-linux-arm-musleabihf': 1.9.1 + '@unrs/resolver-binding-linux-arm64-gnu': 1.9.1 + '@unrs/resolver-binding-linux-arm64-musl': 1.9.1 + '@unrs/resolver-binding-linux-ppc64-gnu': 1.9.1 + '@unrs/resolver-binding-linux-riscv64-gnu': 1.9.1 + '@unrs/resolver-binding-linux-riscv64-musl': 1.9.1 + '@unrs/resolver-binding-linux-s390x-gnu': 1.9.1 + '@unrs/resolver-binding-linux-x64-gnu': 1.9.1 + '@unrs/resolver-binding-linux-x64-musl': 1.9.1 + '@unrs/resolver-binding-wasm32-wasi': 1.9.1 + '@unrs/resolver-binding-win32-arm64-msvc': 1.9.1 + '@unrs/resolver-binding-win32-ia32-msvc': 1.9.1 + '@unrs/resolver-binding-win32-x64-msvc': 1.9.1 update-browserslist-db@1.1.3(browserslist@4.25.0): dependencies: @@ -17391,15 +17387,15 @@ snapshots: d3-time: 3.1.0 d3-timer: 3.0.1 - viem@2.31.0(typescript@5.8.3)(zod@3.25.57): + viem@2.31.4(typescript@5.8.3)(zod@3.25.67): dependencies: - '@noble/curves': 1.9.1 + '@noble/curves': 1.9.2 '@noble/hashes': 1.8.0 '@scure/bip32': 1.7.0 '@scure/bip39': 1.6.0 - abitype: 1.0.8(typescript@5.8.3)(zod@3.25.57) + abitype: 1.0.8(typescript@5.8.3)(zod@3.25.67) isows: 1.0.7(ws@8.18.2) - ox: 0.7.1(typescript@5.8.3)(zod@3.25.57) + ox: 0.8.1(typescript@5.8.3)(zod@3.25.67) ws: 8.18.2 optionalDependencies: typescript: 5.8.3 @@ -17408,13 +17404,13 @@ snapshots: - utf-8-validate - zod - vite-node@2.1.9(@types/node@22.15.31): + vite-node@2.1.9(@types/node@22.15.33): dependencies: cac: 6.7.14 debug: 4.4.1(supports-color@8.1.1) es-module-lexer: 1.7.0 pathe: 1.1.2 - vite: 5.4.19(@types/node@22.15.31) + vite: 5.4.19(@types/node@22.15.33) transitivePeerDependencies: - '@types/node' - less @@ -17426,19 +17422,19 @@ snapshots: - supports-color - terser - vite@5.4.19(@types/node@22.15.31): + vite@5.4.19(@types/node@22.15.33): dependencies: esbuild: 0.21.5 - postcss: 8.5.4 - rollup: 4.42.0 + postcss: 8.5.6 + rollup: 4.44.0 optionalDependencies: - '@types/node': 22.15.31 + '@types/node': 22.15.33 fsevents: 2.3.3 - vitest@2.1.9(@types/node@22.15.31)(jsdom@24.1.3): + vitest@2.1.9(@types/node@22.15.33)(jsdom@24.1.3): dependencies: '@vitest/expect': 2.1.9 - '@vitest/mocker': 2.1.9(vite@5.4.19(@types/node@22.15.31)) + '@vitest/mocker': 2.1.9(vite@5.4.19(@types/node@22.15.33)) '@vitest/pretty-format': 2.1.9 '@vitest/runner': 2.1.9 '@vitest/snapshot': 2.1.9 @@ -17452,13 +17448,13 @@ snapshots: std-env: 3.9.0 tinybench: 2.9.0 tinyexec: 0.3.2 - tinypool: 1.1.0 + tinypool: 1.1.1 tinyrainbow: 1.2.0 - vite: 5.4.19(@types/node@22.15.31) - vite-node: 2.1.9(@types/node@22.15.31) + vite: 5.4.19(@types/node@22.15.33) + vite-node: 2.1.9(@types/node@22.15.33) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 22.15.31 + '@types/node': 22.15.33 jsdom: 24.1.3 transitivePeerDependencies: - less @@ -17600,7 +17596,7 @@ snapshots: workerpool@6.5.1: {} - wrangler@3.114.9(@cloudflare/workers-types@4.20250610.0): + wrangler@3.114.10(@cloudflare/workers-types@4.20250620.0): dependencies: '@cloudflare/kv-asset-handler': 0.3.4 '@cloudflare/unenv-preset': 2.0.2(unenv@2.0.0-rc.14)(workerd@1.20250408.0) @@ -17613,7 +17609,7 @@ snapshots: unenv: 2.0.0-rc.14 workerd: 1.20250408.0 optionalDependencies: - '@cloudflare/workers-types': 4.20250610.0 + '@cloudflare/workers-types': 4.20250620.0 fsevents: 2.3.3 sharp: 0.33.5 transitivePeerDependencies: @@ -17687,14 +17683,14 @@ snapshots: dependencies: zod: 3.23.8 - zod-validation-error@3.4.1(zod@3.25.57): + zod-validation-error@3.5.2(zod@3.25.67): dependencies: - zod: 3.25.57 + zod: 3.25.67 zod@3.22.3: {} zod@3.23.8: {} - zod@3.25.57: {} + zod@3.25.67: {} zwitch@2.0.4: {} diff --git a/website/next.config.js b/website/next.config.js index ab4ab3a89c53..6fd1e9a9160a 100644 --- a/website/next.config.js +++ b/website/next.config.js @@ -2,14 +2,13 @@ import nextra from 'nextra' import rehypeMdxCodeProps from 'rehype-mdx-code-props' -import rehypeUnwrapImages from 'rehype-unwrap-images' -import remarkCallouts from 'remark-callouts' import { defaultLocale, translate } from '@edgeandnode/gds' -// Compile `i18n.ts` to `i18n.js` since we can't import `ts` files in `next.config.js` import { translations } from './dist/i18n.js' -import { remarkTransformRemoteGitHub } from './src/remarkTransformRemoteGitHub.js' +import rehypeUnwrapImages from './dist/mdxPlugins/rehypeUnwrapImages.js' +import remarkCallouts from './dist/mdxPlugins/remarkCallouts.js' +import remarkTransformRemoteDocs from './dist/mdxPlugins/remarkTransformRemoteDocs.js' const env = { ENVIRONMENT: process.env.ENVIRONMENT, @@ -102,7 +101,7 @@ const withNextra = nextra({ ] }, mdxOptions: { - remarkPlugins: [remarkTransformRemoteGitHub, remarkCallouts], + remarkPlugins: [remarkCallouts, remarkTransformRemoteDocs], rehypePlugins: [rehypeUnwrapImages, rehypeMdxCodeProps], }, }) diff --git a/website/package.json b/website/package.json index 03ba47215008..5662d8921c83 100644 --- a/website/package.json +++ b/website/package.json @@ -5,7 +5,7 @@ "type": "module", "scripts": { "dev": "next", - "predev": "tsup ./src/i18n.ts --format esm", + "predev": "tsup ./src/i18n.ts ./src/mdxPlugins/*.ts --format esm", "build": "rm -rf .next && rm -rf out && next build", "prebuild": "pnpm predev", "prebuild:ci": "pnpm fetch-remote-docs && pnpm fetch-api-reference && pnpm fix-pages-structure", @@ -19,19 +19,23 @@ "dependencies": { "@docsearch/react": "^3.9.0", "@edgeandnode/common": "^7.0.4", - "@edgeandnode/gds": "^6.5.15", - "@edgeandnode/go": "^10.1.1", + "@edgeandnode/gds": "^6.6.2", + "@edgeandnode/go": "^10.2.3", "@emotion/react": "^11.14.0", - "@graphprotocol/contracts": "^7.1.2", + "@graphprotocol/contracts": "^7.3.0", "@pinax/graph-networks-registry": "^0.6.7", "@react-hookz/web": "^25.1.1", "@readme/httpsnippet": "^11.0.0", "@readme/openapi-parser": "^4.1.0", "fetch-har": "^11.1.1", + "hast": "^1.0.0", + "hast-util-whitespace": "^3.0.0", "lodash": "^4.17.21", + "mdast-util-mdx-jsx": "^3.2.0", + "mdast-util-to-hast": "^13.2.0", "mixpanel-browser": "^2.65.0", - "motion": "^12.16.0", - "next": "^14.2.29", + "motion": "^12.19.1", + "next": "^14.2.30", "next-seo": "^6.8.0", "next-sitemap": "^4.2.3", "nextra": "^3.3.1", @@ -41,24 +45,25 @@ "react-ga4": "^2.1.0", "react-intersection-observer": "^9.16.0", "rehype-mdx-code-props": "^3.0.1", - "rehype-unwrap-images": "workspace:*", - "remark-callouts": "workspace:*", "theme-ui": "^0.17.2", "unist-util-visit": "^5.0.0", - "zod": "^3.25.57" + "vfile": "^6.0.3", + "zod": "^3.25.67" }, "devDependencies": { - "@types/lodash": "^4.17.17", + "@types/hast": "^3.0.4", + "@types/lodash": "^4.17.19", "@types/mdast": "^4.0.4", "@types/mixpanel-browser": "^2.60.0", - "@types/node": "^22.15.31", + "@types/node": "^22.15.33", "@types/react": "^18.3.23", "@types/react-dom": "^18.3.7", + "@types/vfile": "^4.0.0", "autoprefixer": "^10.4.21", "fast-xml-parser": "^5.2.5", - "postcss": "^8.5.4", + "postcss": "^8.5.6", "tailwindcss": "^3.4.17", "tsup": "^8.5.0", - "tsx": "^4.19.4" + "tsx": "^4.20.3" } } diff --git a/website/route-lockfile.txt b/website/route-lockfile.txt index e0c9011e0acb..e2481392bf41 100644 --- a/website/route-lockfile.txt +++ b/website/route-lockfile.txt @@ -127,6 +127,7 @@ /ar/supported-networks/clover/ /ar/supported-networks/corn-testnet/ /ar/supported-networks/corn/ +/ar/supported-networks/cronos/ /ar/supported-networks/eos-evm/ /ar/supported-networks/eos/ /ar/supported-networks/etherlink-mainnet/ @@ -151,6 +152,7 @@ /ar/supported-networks/hemi/ /ar/supported-networks/holesky-cl/ /ar/supported-networks/holesky/ +/ar/supported-networks/hoodi-cl/ /ar/supported-networks/hoodi/ /ar/supported-networks/injective-mainnet/ /ar/supported-networks/injective-testnet/ @@ -217,12 +219,15 @@ /ar/supported-networks/sonic/ /ar/supported-networks/starknet-mainnet/ /ar/supported-networks/starknet-testnet/ +/ar/supported-networks/status-sepolia/ /ar/supported-networks/stellar-testnet/ /ar/supported-networks/stellar/ /ar/supported-networks/swellchain-sepolia/ /ar/supported-networks/swellchain/ /ar/supported-networks/telos-testnet/ /ar/supported-networks/telos/ +/ar/supported-networks/tron-evm/ +/ar/supported-networks/tron/ /ar/supported-networks/ultra/ /ar/supported-networks/unichain-testnet/ /ar/supported-networks/unichain/ @@ -390,6 +395,7 @@ /cs/supported-networks/clover/ /cs/supported-networks/corn-testnet/ /cs/supported-networks/corn/ +/cs/supported-networks/cronos/ /cs/supported-networks/eos-evm/ /cs/supported-networks/eos/ /cs/supported-networks/etherlink-mainnet/ @@ -414,6 +420,7 @@ /cs/supported-networks/hemi/ /cs/supported-networks/holesky-cl/ /cs/supported-networks/holesky/ +/cs/supported-networks/hoodi-cl/ /cs/supported-networks/hoodi/ /cs/supported-networks/injective-mainnet/ /cs/supported-networks/injective-testnet/ @@ -480,12 +487,15 @@ /cs/supported-networks/sonic/ /cs/supported-networks/starknet-mainnet/ /cs/supported-networks/starknet-testnet/ +/cs/supported-networks/status-sepolia/ /cs/supported-networks/stellar-testnet/ /cs/supported-networks/stellar/ /cs/supported-networks/swellchain-sepolia/ /cs/supported-networks/swellchain/ /cs/supported-networks/telos-testnet/ /cs/supported-networks/telos/ +/cs/supported-networks/tron-evm/ +/cs/supported-networks/tron/ /cs/supported-networks/ultra/ /cs/supported-networks/unichain-testnet/ /cs/supported-networks/unichain/ @@ -653,6 +663,7 @@ /de/supported-networks/clover/ /de/supported-networks/corn-testnet/ /de/supported-networks/corn/ +/de/supported-networks/cronos/ /de/supported-networks/eos-evm/ /de/supported-networks/eos/ /de/supported-networks/etherlink-mainnet/ @@ -677,6 +688,7 @@ /de/supported-networks/hemi/ /de/supported-networks/holesky-cl/ /de/supported-networks/holesky/ +/de/supported-networks/hoodi-cl/ /de/supported-networks/hoodi/ /de/supported-networks/injective-mainnet/ /de/supported-networks/injective-testnet/ @@ -743,12 +755,15 @@ /de/supported-networks/sonic/ /de/supported-networks/starknet-mainnet/ /de/supported-networks/starknet-testnet/ +/de/supported-networks/status-sepolia/ /de/supported-networks/stellar-testnet/ /de/supported-networks/stellar/ /de/supported-networks/swellchain-sepolia/ /de/supported-networks/swellchain/ /de/supported-networks/telos-testnet/ /de/supported-networks/telos/ +/de/supported-networks/tron-evm/ +/de/supported-networks/tron/ /de/supported-networks/ultra/ /de/supported-networks/unichain-testnet/ /de/supported-networks/unichain/ @@ -916,6 +931,7 @@ /en/supported-networks/clover/ /en/supported-networks/corn-testnet/ /en/supported-networks/corn/ +/en/supported-networks/cronos/ /en/supported-networks/eos-evm/ /en/supported-networks/eos/ /en/supported-networks/etherlink-mainnet/ @@ -940,6 +956,7 @@ /en/supported-networks/hemi/ /en/supported-networks/holesky-cl/ /en/supported-networks/holesky/ +/en/supported-networks/hoodi-cl/ /en/supported-networks/hoodi/ /en/supported-networks/injective-mainnet/ /en/supported-networks/injective-testnet/ @@ -1006,12 +1023,15 @@ /en/supported-networks/sonic/ /en/supported-networks/starknet-mainnet/ /en/supported-networks/starknet-testnet/ +/en/supported-networks/status-sepolia/ /en/supported-networks/stellar-testnet/ /en/supported-networks/stellar/ /en/supported-networks/swellchain-sepolia/ /en/supported-networks/swellchain/ /en/supported-networks/telos-testnet/ /en/supported-networks/telos/ +/en/supported-networks/tron-evm/ +/en/supported-networks/tron/ /en/supported-networks/ultra/ /en/supported-networks/unichain-testnet/ /en/supported-networks/unichain/ @@ -1179,6 +1199,7 @@ /es/supported-networks/clover/ /es/supported-networks/corn-testnet/ /es/supported-networks/corn/ +/es/supported-networks/cronos/ /es/supported-networks/eos-evm/ /es/supported-networks/eos/ /es/supported-networks/etherlink-mainnet/ @@ -1203,6 +1224,7 @@ /es/supported-networks/hemi/ /es/supported-networks/holesky-cl/ /es/supported-networks/holesky/ +/es/supported-networks/hoodi-cl/ /es/supported-networks/hoodi/ /es/supported-networks/injective-mainnet/ /es/supported-networks/injective-testnet/ @@ -1269,12 +1291,15 @@ /es/supported-networks/sonic/ /es/supported-networks/starknet-mainnet/ /es/supported-networks/starknet-testnet/ +/es/supported-networks/status-sepolia/ /es/supported-networks/stellar-testnet/ /es/supported-networks/stellar/ /es/supported-networks/swellchain-sepolia/ /es/supported-networks/swellchain/ /es/supported-networks/telos-testnet/ /es/supported-networks/telos/ +/es/supported-networks/tron-evm/ +/es/supported-networks/tron/ /es/supported-networks/ultra/ /es/supported-networks/unichain-testnet/ /es/supported-networks/unichain/ @@ -1442,6 +1467,7 @@ /fr/supported-networks/clover/ /fr/supported-networks/corn-testnet/ /fr/supported-networks/corn/ +/fr/supported-networks/cronos/ /fr/supported-networks/eos-evm/ /fr/supported-networks/eos/ /fr/supported-networks/etherlink-mainnet/ @@ -1466,6 +1492,7 @@ /fr/supported-networks/hemi/ /fr/supported-networks/holesky-cl/ /fr/supported-networks/holesky/ +/fr/supported-networks/hoodi-cl/ /fr/supported-networks/hoodi/ /fr/supported-networks/injective-mainnet/ /fr/supported-networks/injective-testnet/ @@ -1532,12 +1559,15 @@ /fr/supported-networks/sonic/ /fr/supported-networks/starknet-mainnet/ /fr/supported-networks/starknet-testnet/ +/fr/supported-networks/status-sepolia/ /fr/supported-networks/stellar-testnet/ /fr/supported-networks/stellar/ /fr/supported-networks/swellchain-sepolia/ /fr/supported-networks/swellchain/ /fr/supported-networks/telos-testnet/ /fr/supported-networks/telos/ +/fr/supported-networks/tron-evm/ +/fr/supported-networks/tron/ /fr/supported-networks/ultra/ /fr/supported-networks/unichain-testnet/ /fr/supported-networks/unichain/ @@ -1705,6 +1735,7 @@ /hi/supported-networks/clover/ /hi/supported-networks/corn-testnet/ /hi/supported-networks/corn/ +/hi/supported-networks/cronos/ /hi/supported-networks/eos-evm/ /hi/supported-networks/eos/ /hi/supported-networks/etherlink-mainnet/ @@ -1729,6 +1760,7 @@ /hi/supported-networks/hemi/ /hi/supported-networks/holesky-cl/ /hi/supported-networks/holesky/ +/hi/supported-networks/hoodi-cl/ /hi/supported-networks/hoodi/ /hi/supported-networks/injective-mainnet/ /hi/supported-networks/injective-testnet/ @@ -1795,12 +1827,15 @@ /hi/supported-networks/sonic/ /hi/supported-networks/starknet-mainnet/ /hi/supported-networks/starknet-testnet/ +/hi/supported-networks/status-sepolia/ /hi/supported-networks/stellar-testnet/ /hi/supported-networks/stellar/ /hi/supported-networks/swellchain-sepolia/ /hi/supported-networks/swellchain/ /hi/supported-networks/telos-testnet/ /hi/supported-networks/telos/ +/hi/supported-networks/tron-evm/ +/hi/supported-networks/tron/ /hi/supported-networks/ultra/ /hi/supported-networks/unichain-testnet/ /hi/supported-networks/unichain/ @@ -1968,6 +2003,7 @@ /it/supported-networks/clover/ /it/supported-networks/corn-testnet/ /it/supported-networks/corn/ +/it/supported-networks/cronos/ /it/supported-networks/eos-evm/ /it/supported-networks/eos/ /it/supported-networks/etherlink-mainnet/ @@ -1992,6 +2028,7 @@ /it/supported-networks/hemi/ /it/supported-networks/holesky-cl/ /it/supported-networks/holesky/ +/it/supported-networks/hoodi-cl/ /it/supported-networks/hoodi/ /it/supported-networks/injective-mainnet/ /it/supported-networks/injective-testnet/ @@ -2058,12 +2095,15 @@ /it/supported-networks/sonic/ /it/supported-networks/starknet-mainnet/ /it/supported-networks/starknet-testnet/ +/it/supported-networks/status-sepolia/ /it/supported-networks/stellar-testnet/ /it/supported-networks/stellar/ /it/supported-networks/swellchain-sepolia/ /it/supported-networks/swellchain/ /it/supported-networks/telos-testnet/ /it/supported-networks/telos/ +/it/supported-networks/tron-evm/ +/it/supported-networks/tron/ /it/supported-networks/ultra/ /it/supported-networks/unichain-testnet/ /it/supported-networks/unichain/ @@ -2231,6 +2271,7 @@ /ja/supported-networks/clover/ /ja/supported-networks/corn-testnet/ /ja/supported-networks/corn/ +/ja/supported-networks/cronos/ /ja/supported-networks/eos-evm/ /ja/supported-networks/eos/ /ja/supported-networks/etherlink-mainnet/ @@ -2255,6 +2296,7 @@ /ja/supported-networks/hemi/ /ja/supported-networks/holesky-cl/ /ja/supported-networks/holesky/ +/ja/supported-networks/hoodi-cl/ /ja/supported-networks/hoodi/ /ja/supported-networks/injective-mainnet/ /ja/supported-networks/injective-testnet/ @@ -2321,12 +2363,15 @@ /ja/supported-networks/sonic/ /ja/supported-networks/starknet-mainnet/ /ja/supported-networks/starknet-testnet/ +/ja/supported-networks/status-sepolia/ /ja/supported-networks/stellar-testnet/ /ja/supported-networks/stellar/ /ja/supported-networks/swellchain-sepolia/ /ja/supported-networks/swellchain/ /ja/supported-networks/telos-testnet/ /ja/supported-networks/telos/ +/ja/supported-networks/tron-evm/ +/ja/supported-networks/tron/ /ja/supported-networks/ultra/ /ja/supported-networks/unichain-testnet/ /ja/supported-networks/unichain/ @@ -2608,6 +2653,7 @@ /mr/supported-networks/clover/ /mr/supported-networks/corn-testnet/ /mr/supported-networks/corn/ +/mr/supported-networks/cronos/ /mr/supported-networks/eos-evm/ /mr/supported-networks/eos/ /mr/supported-networks/etherlink-mainnet/ @@ -2632,6 +2678,7 @@ /mr/supported-networks/hemi/ /mr/supported-networks/holesky-cl/ /mr/supported-networks/holesky/ +/mr/supported-networks/hoodi-cl/ /mr/supported-networks/hoodi/ /mr/supported-networks/injective-mainnet/ /mr/supported-networks/injective-testnet/ @@ -2698,12 +2745,15 @@ /mr/supported-networks/sonic/ /mr/supported-networks/starknet-mainnet/ /mr/supported-networks/starknet-testnet/ +/mr/supported-networks/status-sepolia/ /mr/supported-networks/stellar-testnet/ /mr/supported-networks/stellar/ /mr/supported-networks/swellchain-sepolia/ /mr/supported-networks/swellchain/ /mr/supported-networks/telos-testnet/ /mr/supported-networks/telos/ +/mr/supported-networks/tron-evm/ +/mr/supported-networks/tron/ /mr/supported-networks/ultra/ /mr/supported-networks/unichain-testnet/ /mr/supported-networks/unichain/ @@ -3099,6 +3149,7 @@ /pt/supported-networks/clover/ /pt/supported-networks/corn-testnet/ /pt/supported-networks/corn/ +/pt/supported-networks/cronos/ /pt/supported-networks/eos-evm/ /pt/supported-networks/eos/ /pt/supported-networks/etherlink-mainnet/ @@ -3123,6 +3174,7 @@ /pt/supported-networks/hemi/ /pt/supported-networks/holesky-cl/ /pt/supported-networks/holesky/ +/pt/supported-networks/hoodi-cl/ /pt/supported-networks/hoodi/ /pt/supported-networks/injective-mainnet/ /pt/supported-networks/injective-testnet/ @@ -3189,12 +3241,15 @@ /pt/supported-networks/sonic/ /pt/supported-networks/starknet-mainnet/ /pt/supported-networks/starknet-testnet/ +/pt/supported-networks/status-sepolia/ /pt/supported-networks/stellar-testnet/ /pt/supported-networks/stellar/ /pt/supported-networks/swellchain-sepolia/ /pt/supported-networks/swellchain/ /pt/supported-networks/telos-testnet/ /pt/supported-networks/telos/ +/pt/supported-networks/tron-evm/ +/pt/supported-networks/tron/ /pt/supported-networks/ultra/ /pt/supported-networks/unichain-testnet/ /pt/supported-networks/unichain/ @@ -3476,6 +3531,7 @@ /ru/supported-networks/clover/ /ru/supported-networks/corn-testnet/ /ru/supported-networks/corn/ +/ru/supported-networks/cronos/ /ru/supported-networks/eos-evm/ /ru/supported-networks/eos/ /ru/supported-networks/etherlink-mainnet/ @@ -3500,6 +3556,7 @@ /ru/supported-networks/hemi/ /ru/supported-networks/holesky-cl/ /ru/supported-networks/holesky/ +/ru/supported-networks/hoodi-cl/ /ru/supported-networks/hoodi/ /ru/supported-networks/injective-mainnet/ /ru/supported-networks/injective-testnet/ @@ -3566,12 +3623,15 @@ /ru/supported-networks/sonic/ /ru/supported-networks/starknet-mainnet/ /ru/supported-networks/starknet-testnet/ +/ru/supported-networks/status-sepolia/ /ru/supported-networks/stellar-testnet/ /ru/supported-networks/stellar/ /ru/supported-networks/swellchain-sepolia/ /ru/supported-networks/swellchain/ /ru/supported-networks/telos-testnet/ /ru/supported-networks/telos/ +/ru/supported-networks/tron-evm/ +/ru/supported-networks/tron/ /ru/supported-networks/ultra/ /ru/supported-networks/unichain-testnet/ /ru/supported-networks/unichain/ @@ -3739,6 +3799,7 @@ /sv/supported-networks/clover/ /sv/supported-networks/corn-testnet/ /sv/supported-networks/corn/ +/sv/supported-networks/cronos/ /sv/supported-networks/eos-evm/ /sv/supported-networks/eos/ /sv/supported-networks/etherlink-mainnet/ @@ -3763,6 +3824,7 @@ /sv/supported-networks/hemi/ /sv/supported-networks/holesky-cl/ /sv/supported-networks/holesky/ +/sv/supported-networks/hoodi-cl/ /sv/supported-networks/hoodi/ /sv/supported-networks/injective-mainnet/ /sv/supported-networks/injective-testnet/ @@ -3829,12 +3891,15 @@ /sv/supported-networks/sonic/ /sv/supported-networks/starknet-mainnet/ /sv/supported-networks/starknet-testnet/ +/sv/supported-networks/status-sepolia/ /sv/supported-networks/stellar-testnet/ /sv/supported-networks/stellar/ /sv/supported-networks/swellchain-sepolia/ /sv/supported-networks/swellchain/ /sv/supported-networks/telos-testnet/ /sv/supported-networks/telos/ +/sv/supported-networks/tron-evm/ +/sv/supported-networks/tron/ /sv/supported-networks/ultra/ /sv/supported-networks/unichain-testnet/ /sv/supported-networks/unichain/ @@ -4002,6 +4067,7 @@ /tr/supported-networks/clover/ /tr/supported-networks/corn-testnet/ /tr/supported-networks/corn/ +/tr/supported-networks/cronos/ /tr/supported-networks/eos-evm/ /tr/supported-networks/eos/ /tr/supported-networks/etherlink-mainnet/ @@ -4026,6 +4092,7 @@ /tr/supported-networks/hemi/ /tr/supported-networks/holesky-cl/ /tr/supported-networks/holesky/ +/tr/supported-networks/hoodi-cl/ /tr/supported-networks/hoodi/ /tr/supported-networks/injective-mainnet/ /tr/supported-networks/injective-testnet/ @@ -4092,12 +4159,15 @@ /tr/supported-networks/sonic/ /tr/supported-networks/starknet-mainnet/ /tr/supported-networks/starknet-testnet/ +/tr/supported-networks/status-sepolia/ /tr/supported-networks/stellar-testnet/ /tr/supported-networks/stellar/ /tr/supported-networks/swellchain-sepolia/ /tr/supported-networks/swellchain/ /tr/supported-networks/telos-testnet/ /tr/supported-networks/telos/ +/tr/supported-networks/tron-evm/ +/tr/supported-networks/tron/ /tr/supported-networks/ultra/ /tr/supported-networks/unichain-testnet/ /tr/supported-networks/unichain/ @@ -4379,6 +4449,7 @@ /ur/supported-networks/clover/ /ur/supported-networks/corn-testnet/ /ur/supported-networks/corn/ +/ur/supported-networks/cronos/ /ur/supported-networks/eos-evm/ /ur/supported-networks/eos/ /ur/supported-networks/etherlink-mainnet/ @@ -4403,6 +4474,7 @@ /ur/supported-networks/hemi/ /ur/supported-networks/holesky-cl/ /ur/supported-networks/holesky/ +/ur/supported-networks/hoodi-cl/ /ur/supported-networks/hoodi/ /ur/supported-networks/injective-mainnet/ /ur/supported-networks/injective-testnet/ @@ -4469,12 +4541,15 @@ /ur/supported-networks/sonic/ /ur/supported-networks/starknet-mainnet/ /ur/supported-networks/starknet-testnet/ +/ur/supported-networks/status-sepolia/ /ur/supported-networks/stellar-testnet/ /ur/supported-networks/stellar/ /ur/supported-networks/swellchain-sepolia/ /ur/supported-networks/swellchain/ /ur/supported-networks/telos-testnet/ /ur/supported-networks/telos/ +/ur/supported-networks/tron-evm/ +/ur/supported-networks/tron/ /ur/supported-networks/ultra/ /ur/supported-networks/unichain-testnet/ /ur/supported-networks/unichain/ @@ -4756,6 +4831,7 @@ /zh/supported-networks/clover/ /zh/supported-networks/corn-testnet/ /zh/supported-networks/corn/ +/zh/supported-networks/cronos/ /zh/supported-networks/eos-evm/ /zh/supported-networks/eos/ /zh/supported-networks/etherlink-mainnet/ @@ -4780,6 +4856,7 @@ /zh/supported-networks/hemi/ /zh/supported-networks/holesky-cl/ /zh/supported-networks/holesky/ +/zh/supported-networks/hoodi-cl/ /zh/supported-networks/hoodi/ /zh/supported-networks/injective-mainnet/ /zh/supported-networks/injective-testnet/ @@ -4846,12 +4923,15 @@ /zh/supported-networks/sonic/ /zh/supported-networks/starknet-mainnet/ /zh/supported-networks/starknet-testnet/ +/zh/supported-networks/status-sepolia/ /zh/supported-networks/stellar-testnet/ /zh/supported-networks/stellar/ /zh/supported-networks/swellchain-sepolia/ /zh/supported-networks/swellchain/ /zh/supported-networks/telos-testnet/ /zh/supported-networks/telos/ +/zh/supported-networks/tron-evm/ +/zh/supported-networks/tron/ /zh/supported-networks/ultra/ /zh/supported-networks/unichain-testnet/ /zh/supported-networks/unichain/ diff --git a/website/scripts/fetch-remote-docs.ts b/website/scripts/fetch-remote-docs.ts index 41d33f4ac01b..9f984fb806c4 100644 --- a/website/scripts/fetch-remote-docs.ts +++ b/website/scripts/fetch-remote-docs.ts @@ -1,64 +1,39 @@ import fs from 'node:fs/promises' import path from 'node:path' -type Params = { - user: string - repo: string - branch: string - docsPath: string - outputPath: string - filterDocs?: (filePath: string) => boolean -} +import { ENGLISH_PAGES_DIRECTORY, REMOTE_DOCS_REPOS, type RemoteDocsRepo } from '../src/remoteDocs' -async function fetchRemoteDocs({ user, repo, branch, docsPath, outputPath, filterDocs }: Params) { - const url = `https://api.github.com/repos/${user}/${repo}/git/trees/${branch}?recursive=1` +async function fetchRemoteDocs(repo: RemoteDocsRepo) { + const url = `https://api.github.com/repos/${repo.user}/${repo.name}/git/trees/${repo.branch}?recursive=1` const response = await fetch(url) - const data = await response.json() if (data.message) { console.error('❌ GitHub API rate limit exceeded, skipping…', JSON.stringify(data, null, 2)) process.exit(0) } - const filePaths = (data.tree as { path: string }[]) - .filter((item) => item.path.startsWith(docsPath)) - .map((item) => item.path.replace(docsPath, '')) - const result = { - user, - repo, - branch, - docsPath, - filePaths: filePaths.filter((filePath) => filePath.endsWith('.md')), - } - if (filterDocs) { - result.filePaths = result.filePaths.filter(filterDocs) - } - for (const fp of result.filePaths) { - const response = await fetch(`https://raw.githubusercontent.com/${user}/${repo}/${branch}/${docsPath}${fp}`) + const docsRelativePaths = (data.tree as { path: string }[]).flatMap(({ path }) => + path.startsWith(repo.docsPath) && path.endsWith('.md') ? [path.substring(repo.docsPath.length)] : [], + ) + + for (const docsRelativePath of docsRelativePaths) { + const response = await fetch( + `https://raw.githubusercontent.com/${repo.user}/${repo.name}/${repo.branch}/${repo.docsPath}${docsRelativePath}`, + ) if (!response.ok) { throw new Error(`Failed to fetch remote file. ${response.status} ${response.statusText}`) } const text = await response.text() - const filePath = path.join(outputPath, fp) + const filePath = path.join(ENGLISH_PAGES_DIRECTORY, repo.basePath, docsRelativePath) + const outputDir = path.dirname(filePath) + await fs.mkdir(outputDir, { recursive: true }) await fs.writeFile(filePath, text) console.log( - `Saved remote file ${user}/${repo}/${branch}/${docsPath}${fp} to ${path.relative(process.cwd(), path.dirname(filePath))}`, + `Saved remote file ${repo.user}/${repo.name}/${repo.branch}/${repo.docsPath}${docsRelativePath} to ${path.relative(process.cwd(), outputDir)}`, ) } } -await fetchRemoteDocs({ - user: 'graphprotocol', - repo: 'graph-tooling', - branch: 'main', - docsPath: 'packages/ts/', - outputPath: path.join(process.cwd(), 'src/pages/en/subgraphs/developing/creating/graph-ts'), -}) - -await fetchRemoteDocs({ - user: 'graphprotocol', - repo: 'graph-client', - branch: 'main', - docsPath: 'docs/', - outputPath: path.join(process.cwd(), 'src/pages/en/subgraphs/querying/graph-client'), -}) +for (const repo of REMOTE_DOCS_REPOS) { + await fetchRemoteDocs(repo) +} diff --git a/website/src/HomePage.tsx b/website/src/HomePage.tsx index 93893d89fc65..300268104c90 100644 --- a/website/src/HomePage.tsx +++ b/website/src/HomePage.tsx @@ -200,9 +200,7 @@ export default function HomePage({ supportedNetworks }: { supportedNetworks: Sup !['boba-bnb', 'eos-evm', 'polygon-zkevm', 'solana-accounts'].includes(network.id), ) // Filter out networks that don't have a proper monochrome logo - .filter((network) => { - return network.id !== 'zora' - }) + .filter((network) => network.id !== 'zora') .map((network) => (
  • diff --git a/website/src/components/Callout.tsx b/website/src/components/Callout.tsx index da583be1bc04..06dd8e8241b2 100644 --- a/website/src/components/Callout.tsx +++ b/website/src/components/Callout.tsx @@ -43,7 +43,7 @@ export const Callout = ({
    )} > -
    +
    {variant === 'info' ? ( ) : ( @@ -62,9 +62,9 @@ export const Callout = ({
    diff --git a/website/src/components/Image.tsx b/website/src/components/Image.tsx index 09dea251bb59..b2c07bb9c2d1 100644 --- a/website/src/components/Image.tsx +++ b/website/src/components/Image.tsx @@ -1,15 +1,10 @@ -import NextImage from 'next/image' import type { ComponentProps } from 'react' import { classNames } from '@edgeandnode/gds' -export interface ImageProps extends Omit, 'src'> { - src?: ComponentProps['src'] -} +interface ImageProps extends ComponentProps<'img'> {} -export const Image = ({ src: passedSrc, alt, className, ...props }: ImageProps) => { - const src = - typeof passedSrc === 'object' ? ('default' in passedSrc ? passedSrc.default.src : passedSrc.src) : passedSrc +export const Image = ({ src, alt, className, ...props }: ImageProps) => { return (
    ( + controlledValue: T | undefined, + defaultValue: T, + onChange?: (value: OnChangeValue, ...args: OnChangeArgs) => void, +) { + const [uncontrolledValue, setUncontrolledValue] = useState( + controlledValue !== undefined ? controlledValue : defaultValue, + ) + const value = controlledValue !== undefined ? controlledValue : uncontrolledValue + const setValue = (newValue: OnChangeValue, ...args: OnChangeArgs) => { + if (newValue === value) return + onChange?.(newValue, ...args) + if (controlledValue === undefined) { + setUncontrolledValue(newValue) + } + } + return [value, setValue] as const +} + declare namespace NavigationItemProps { interface BaseProps { title: string icon?: ReactNode selected?: boolean | 'partially' + expanded?: boolean + onExpandedChange?: (expanded: boolean, manual: boolean) => void } type OmittedButtonOrLinkProps = 'title' | 'selected' interface ButtonProps extends BaseProps, Omit {} @@ -55,6 +77,8 @@ export const NavigationItem = ({ title, icon, selected, + expanded: controlledExpanded, + onExpandedChange, onClick, className, children, @@ -62,7 +86,7 @@ export const NavigationItem = ({ }: NavigationItemProps) => { const navigationListContext = useContext(NavigationListContext) const depth = navigationListContext?.depth ?? 0 - const [expandedIfChildren, setExpanded] = useState(false) + const [expandedIfChildren, setExpanded] = useControlled(controlledExpanded, false, onExpandedChange) const expanded = children ? expandedIfChildren : false return ( @@ -85,7 +109,7 @@ export const NavigationItem = ({ ) => { - setExpanded(true) + setExpanded(true, false) onClick?.(event) }} className={` @@ -140,7 +164,7 @@ export const NavigationItem = ({ variant="naked" size="xsmall" aria-expanded={expanded} - onClick={() => setExpanded((expanded) => !expanded)} + onClick={() => setExpanded(!expanded, true)} > @@ -232,9 +254,7 @@ export const NavigationItem = ({ data-expanded={expanded || undefined} className={` absolute -bottom-2 start-0 aspect-square w-full origin-[start] bg-space-1800 fill-none stroke-space-1500 transition duration-150 - safari:delay-150 not-data-[expanded]:opacity-0 - not-data-[expanded]:safari:delay-0 nearest-group-[:has(ul:not(:scope_ul_*,[inert]_*)>li:last-child[data-expanded])]/navigation-item:opacity-0 nearest-group-[:has(ul:not(:scope_ul_*,[inert]_*)>li:last-child[data-expanded])]/navigation-item:delay-150 @style-[--docs-navigation-item-last=1]:opacity-0 diff --git a/website/src/components/Table.tsx b/website/src/components/Table.tsx index 9dc58e45065c..ba7d0e1db812 100644 --- a/website/src/components/Table.tsx +++ b/website/src/components/Table.tsx @@ -31,6 +31,7 @@ export const Table = ({ className, children, variant = 'default', ...props }: Ta -:nested-[th,td]:py-2.5 ${isSupportedNetworks ? '-:nested-[td]:h-16 -:nested-[td]:align-middle' : '-:nested-[td]:align-top'} -:nested-[th]:font-medium + +:nested-icon:inline-flex mdx-[:is(p,ul,ol):not(:last-child,:is(ul,ol)_*)]:mb-3 mdx-[ul,ol]:gap-1 `} diff --git a/website/src/components/TimeIcon.tsx b/website/src/components/TimeIcon.tsx index a7190a7050e8..c2451e2944b8 100644 --- a/website/src/components/TimeIcon.tsx +++ b/website/src/components/TimeIcon.tsx @@ -5,7 +5,7 @@ import { HourglassDynamic } from '@edgeandnode/gds/icons' import { useI18n } from '@/i18n' -export interface TimeIconProps extends ComponentProps<'div'> { +interface TimeIconProps extends ComponentProps<'div'> { variant: 'reading' | 'duration' minutes: number } diff --git a/website/src/layout/Layout.tsx b/website/src/layout/Layout.tsx index e1365d05dde9..5f377c84fc64 100644 --- a/website/src/layout/Layout.tsx +++ b/website/src/layout/Layout.tsx @@ -1,3 +1,4 @@ +import { useMap } from '@react-hookz/web' import merge from 'lodash/merge' import NextImage from 'next/image' import { NextSeo, type NextSeoProps } from 'next-seo' @@ -5,7 +6,16 @@ import type { NextraThemeLayoutProps } from 'nextra' import { useFSRoute, useRouter } from 'nextra/hooks' import { MDXProvider } from 'nextra/mdx' import { normalizePages } from 'nextra/normalize-pages' -import { type ComponentProps, createContext, type ReactNode, useContext, useEffect, useState } from 'react' +import { + type ComponentProps, + createContext, + type ReactNode, + useContext, + useEffect, + useMemo, + useRef, + useState, +} from 'react' import type { WithOptional } from '@edgeandnode/common' import { @@ -47,7 +57,6 @@ import { DocSearch, Heading, Image, - type ImageProps, NavigationGroup, NavigationItem, Table, @@ -67,6 +76,11 @@ const DocSearchHit = ({ hit, children }: { hit: { url: string }; children?: Reac export default function Layout({ pageOpts, children }: NextraThemeLayoutProps) { const { filePath, frontMatter, pageMap, readingTime, timestamp } = pageOpts const fsPath = useFSRoute() + const normalizedPages = normalizePages({ + list: pageMap, + route: fsPath, + }) + const activeRoute = normalizedPages.activePath.at(-1)?.route ?? null const router = useRouter() const { t, translations, locale } = useI18n() const [sidebarExpandedOnMobile, setSidebarExpandedOnMobile] = useState(false) @@ -75,7 +89,7 @@ export default function Layout({ pageOpts, children }: NextraThemeLayoutProps { setSidebarExpandedOnMobile(false) - }, [router.pathname]) + }, [activeRoute]) // TODO: Create `useTailwindScreen` hook in GDS, with usage like `const screen = useTailwindScreen()` and then you can check `screen.md`, etc. const [mobile, setMobile] = useState(false) @@ -87,168 +101,214 @@ export default function Layout({ pageOpts, children }: NextraThemeLayoutProps mediaQueryList.removeEventListener('change', onChange) }, []) - const normalizedPages = normalizePages({ - list: pageMap, - route: fsPath, - }) - - type PartialNavigationItem = WithOptional<(typeof normalizedPages.directories)[number], 'children'> + type PartialNavItem = WithOptional<(typeof normalizedPages.directories)[number], 'children'> - type NavigationItem = Omit<(typeof normalizedPages.directories)[number], 'children'> & { - children: NavigationItem[] - group: NavigationGroup - ancestors: NavigationItem[] + type NavItem = Omit<(typeof normalizedPages.directories)[number], 'children'> & { + children: NavItem[] + group: NavItemGroup + ancestors: NavItem[] frontMatter?: FrontMatter } - type NavigationGroup = { + type NavItemGroup = { title: string | undefined route: string | undefined href: string | undefined - items: NavigationItem[] + items: NavItem[] } - const getNavigationItemIcon = (item: NavigationItem) => { - const routeWithoutLocale = getRouteWithoutLocale(item.route) - const selected = getNavigationItemSelected(item.group.route ?? item.route) - if (routeWithoutLocale === '') { - return - } - if (routeWithoutLocale === '/about' || routeWithoutLocale.startsWith('/about/')) { - return - } - if (routeWithoutLocale === '/supported-networks' || routeWithoutLocale.startsWith('/supported-networks/')) { - return - } - if (routeWithoutLocale === '/contracts' || routeWithoutLocale.startsWith('/contracts/')) { - return - } - if (routeWithoutLocale === '/subgraphs' || routeWithoutLocale.startsWith('/subgraphs/')) { - return - } - if (routeWithoutLocale === '/substreams' || routeWithoutLocale.startsWith('/substreams/')) { - return - } - if (routeWithoutLocale === '/sps' || routeWithoutLocale.startsWith('/sps/')) { - return - } - if (routeWithoutLocale === '/token-api' || routeWithoutLocale.startsWith('/token-api/')) { - return - } - if (routeWithoutLocale === '/indexing' || routeWithoutLocale.startsWith('/indexing/')) { - return - } - if ( - routeWithoutLocale === '/resources' || - routeWithoutLocale.startsWith('/resources/') || - routeWithoutLocale === '/archived' || - routeWithoutLocale.startsWith('/archived/') - ) { - return - } - return null - } + const selectedNavItemRef = useRef(null) + const navItemExpandedByRoute = useMap() - const getNavigationItemHref = (item: NavigationItem) => { - let currentItem = item - while (currentItem.children.length > 0 && !currentItem.withIndexPage) { - currentItem = currentItem.children[0]! + // Refresh the expansion state of nav items on load and when the route changes + useEffect(() => { + // Only keep the manually expanded items + for (const [route, expanded] of navItemExpandedByRoute.entries()) { + if (expanded !== 'manually-expanded') { + navItemExpandedByRoute.delete(route) + } } - return currentItem.route - } - - const getRouteWithoutLocale = (route: string) => route.slice(3) - const activeRoute = normalizedPages.activePath.at(-1)?.route ?? null - let selectedItem: NavigationItem | null = null - - const getNavigationItemSelected = (route: string) => { - if (route === activeRoute) { - return true + // Expand the selected item's ancestors and group that are not already expanded (as to not override the manually expanded states) + if (selectedNavItemRef.current) { + const routesToExpand = [ + selectedNavItemRef.current.route, + ...selectedNavItemRef.current.ancestors.map((ancestor) => ancestor.route), + selectedNavItemRef.current.group.route, + ] + for (const route of routesToExpand) { + if (route === undefined) continue + const alreadyExpanded = navItemExpandedByRoute.get(route) + if (alreadyExpanded) continue + navItemExpandedByRoute.set(route, true) + } } + }, [activeRoute, navItemExpandedByRoute]) - const parentRouteKey = frontMatter.parentRouteKey - if (parentRouteKey && getRouteWithoutLocale(route) === `/${parentRouteKey}`) { - return true - } + const { navItemGroups, getNavItemSelected, getNavItemExpanded, setNavItemExpanded, getNavItemIcon, getNavItemHref } = + useMemo(() => { + const getRouteWithoutLocale = (route: string) => route.slice(3) - if ( - selectedItem && - (route === selectedItem.group.route || selectedItem.ancestors.some((ancestor) => route === ancestor.route)) - ) { - return 'partially' - } - return false - } + const getNavItemSelected = (route: string) => { + if (route === activeRoute) { + return true + } + const parentRouteKey = frontMatter.parentRouteKey + if (parentRouteKey && getRouteWithoutLocale(route) === `/${parentRouteKey}`) { + return true + } + if ( + selectedNavItemRef.current && + selectedNavItemRef.current.ancestors.some((ancestor) => ancestor.route === route) + ) { + return 'partially' + } + return false + } + + const getNavItemExpanded = (route: string) => Boolean(navItemExpandedByRoute.get(route)) - const navigationGroups = normalizedPages.directories.reduce( - (groups, partialItem: PartialNavigationItem) => { - const itemHasChildren = Boolean(partialItem.children?.length) - if (partialItem.type === 'children' && !itemHasChildren) return groups - /** - * When an item of type `children` doesn't have a title set in the meta file, we want to render it without a `NavigationItem` wrapper. - * Unfortunately, Nextra defaults `title` to `name`, so the way to check if it's empty is to check if it's equal to `name`, which should - * never happen with an explicitly set `title` because it should be title case whereas `name` will always be lowercase. - */ - const itemHasNoWrapper = partialItem.type === 'children' && partialItem.title === partialItem.name - let currentGroup = groups[groups.length - 1] - /** - * Create a new group if it's the first one, if the current item is a separator, or if the current group has some items but no title - * (meaning its items are rendered at the top level instead of in an expandable panel) while the current item has children and a wrapper. - */ - if ( - !currentGroup || - partialItem.type === 'separator' || - (currentGroup.title === undefined && currentGroup.items.length > 0 && itemHasChildren && !itemHasNoWrapper) - ) { - groups.push({ - title: partialItem.type === 'separator' ? partialItem.title : undefined, - route: undefined, - href: undefined, - items: [], - }) + const setNavItemExpanded = (route: string, expanded: boolean, manual?: boolean) => { + navItemExpandedByRoute.set(route, expanded ? (manual ? 'manually-expanded' : true) : false) } - if (partialItem.type === 'separator') return groups - currentGroup = groups[groups.length - 1]! - const item = (function getItem( - partialItem: PartialNavigationItem, - ancestors: NavigationItem[] = [], - ): NavigationItem { - const item = { - ...partialItem, - children: [] as NavigationItem[], - group: currentGroup, - ancestors, + + const getNavItemIcon = (navItem: NavItem) => { + const routeWithoutLocale = getRouteWithoutLocale(navItem.route) + const selected = getNavItemSelected(navItem.group.route ?? navItem.route) + if (routeWithoutLocale === '') { + return + } + if (routeWithoutLocale === '/about' || routeWithoutLocale.startsWith('/about/')) { + return } - if (partialItem.children) { - item.children = partialItem.children.map((child) => getItem(child, [...ancestors, item])) + if (routeWithoutLocale === '/supported-networks' || routeWithoutLocale.startsWith('/supported-networks/')) { + return } - if (item.route === activeRoute) { - selectedItem = item + if (routeWithoutLocale === '/contracts' || routeWithoutLocale.startsWith('/contracts/')) { + return } - return item - })(partialItem) - if (currentGroup.title === undefined && currentGroup.items.length === 0 && itemHasChildren && !itemHasNoWrapper) { - /** - * If the group has no title and the first item we want to add to it has children and a wrapper, give the item's title, route, - * href (if different from the first child's), and children to the group, instead of adding the item itself. - */ - currentGroup.title = item.title - currentGroup.route = item.route - const href = getNavigationItemHref(item) - const firstChildHref = getNavigationItemHref(item.children[0]!) - currentGroup.href = href !== firstChildHref ? href : undefined - currentGroup.items.push(...item.children) - } else if (itemHasNoWrapper) { - // Otherwise, if the first or next item to add to the group has no wrapper, just add its children to it - currentGroup.items.push(...item.children) - } else { - // Otherwise, add the item (which may or may not have children) to the group - currentGroup.items.push(item) + if (routeWithoutLocale === '/subgraphs' || routeWithoutLocale.startsWith('/subgraphs/')) { + return + } + if (routeWithoutLocale === '/substreams' || routeWithoutLocale.startsWith('/substreams/')) { + return + } + if (routeWithoutLocale === '/sps' || routeWithoutLocale.startsWith('/sps/')) { + return + } + if (routeWithoutLocale === '/token-api' || routeWithoutLocale.startsWith('/token-api/')) { + return + } + if (routeWithoutLocale === '/indexing' || routeWithoutLocale.startsWith('/indexing/')) { + return + } + if ( + routeWithoutLocale === '/resources' || + routeWithoutLocale.startsWith('/resources/') || + routeWithoutLocale === '/archived' || + routeWithoutLocale.startsWith('/archived/') + ) { + return + } + return null } - return groups - }, - [], - ) + + const getNavItemHref = (navItem: NavItem) => { + let currentNavItem = navItem + while (currentNavItem.children.length > 0 && !currentNavItem.withIndexPage) { + currentNavItem = currentNavItem.children[0]! + } + return currentNavItem.route + } + + const navItemGroups = normalizedPages.directories.reduce( + (groups, partialNavItem: PartialNavItem) => { + const navItemHasChildren = Boolean(partialNavItem.children?.length) + if (partialNavItem.type === 'children' && !navItemHasChildren) return groups + + /** + * When an item of type `children` doesn't have a title set in the meta file, we want to render it without a `NavigationItem` wrapper. + * Unfortunately, Nextra defaults `title` to `name`, so the way to check if it's empty is to check if it's equal to `name`, which should + * never happen with an explicitly set `title` because it should be title case whereas `name` will always be lowercase. + */ + const navItemHasNoWrapper = partialNavItem.type === 'children' && partialNavItem.title === partialNavItem.name + let currentGroup = groups[groups.length - 1] + + /** + * Create a new group if it's the first one, if the current item is a separator, or if the current group has some items but no title + * (meaning its items are rendered at the top level instead of in an expandable panel) while the current item has children and a wrapper. + */ + if ( + !currentGroup || + partialNavItem.type === 'separator' || + (currentGroup.title === undefined && + currentGroup.items.length > 0 && + navItemHasChildren && + !navItemHasNoWrapper) + ) { + groups.push({ + title: partialNavItem.type === 'separator' ? partialNavItem.title : undefined, + route: undefined, + href: undefined, + items: [], + }) + } + + if (partialNavItem.type === 'separator') return groups + currentGroup = groups[groups.length - 1]! + + const getNavItem = (partialNavItem: PartialNavItem, ancestors: NavItem[] = []) => { + const navItem: NavItem = { + ...partialNavItem, + children: [] as NavItem[], + group: currentGroup, + ancestors, + } + if (partialNavItem.children) { + navItem.children = partialNavItem.children.map((child) => getNavItem(child, [...ancestors, navItem])) + } + if (navItem.route === activeRoute) { + selectedNavItemRef.current = navItem + } + return navItem + } + const navItem = getNavItem(partialNavItem) + + /** + * If the group has no title and the first item we want to add to it has children and a wrapper, give the item's title, route, + * href (if different from the first child's), and children to the group, instead of adding the item itself. + */ + if ( + currentGroup.title === undefined && + currentGroup.items.length === 0 && + navItemHasChildren && + !navItemHasNoWrapper + ) { + currentGroup.title = navItem.title + currentGroup.route = navItem.route + const href = getNavItemHref(navItem) + currentGroup.href = href !== getNavItemHref(navItem.children[0]!) ? href : undefined + currentGroup.items.push(...navItem.children) + } else if (navItemHasNoWrapper) { + // Otherwise, if the first or next item to add to the group has no wrapper, just add its children to it + currentGroup.items.push(...navItem.children) + } else { + // Otherwise, add the item (which may or may not have children) to the group + currentGroup.items.push(navItem) + } + return groups + }, + [], + ) + + return { + navItemGroups, + getNavItemSelected, + getNavItemExpanded, + setNavItemExpanded, + getNavItemIcon, + getNavItemHref, + } + }, [normalizedPages.directories, activeRoute, frontMatter.parentRouteKey, navItemExpandedByRoute]) const socialImage = frontMatter.socialImage ?? @@ -283,6 +343,7 @@ export default function Layout({ pageOpts, children }: NextraThemeLayoutProps 1 ? readingTime : null, remotePageUrl: frontMatter.remotePageUrl || null, + // TODO: Replace the following by a more cleaned up `navigation` object flatDocsDirectories: normalizedPages.flatDocsDirectories, activeIndex: normalizedPages.activeIndex, activePath: normalizedPages.activePath, @@ -476,27 +537,24 @@ export default function Layout({ pageOpts, children }: NextraThemeLayoutProps
    - {/** - * TODOs about the navigation system: - * - Auto-expand the current item's ancestors on load and when the route changes - * - Remember which groups/items are expanded at every level, so that closing and re-expanding an ancestor doesn't affect its children's state - * - Remember if groups/items were manually expanded (with the caret) or auto-expanded (either by clicking on its title or by navigating to it - * or one of its children), then auto-close those that were auto-expanded when the user navigates to a different group/item - */} - {navigationGroups.map((group, groupIndex) => { + {navItemGroups.map((group, groupIndex) => { if (group.items.length === 0) { return null } const groupContent = group.items.map((groupItem) => - (function renderItem(item: typeof groupItem) { + (function renderNavItem(navItem) { return ( 0 ? <>{item.children.map(renderItem)} : undefined} + key={navItem.name} + title={navItem.title} + icon={getNavItemIcon(navItem)} + href={getNavItemHref(navItem)} + selected={getNavItemSelected(navItem.route)} + expanded={getNavItemExpanded(navItem.route)} + onExpandedChange={(expanded, manual) => setNavItemExpanded(navItem.route, expanded, manual)} + children={ + navItem.children.length > 0 ? <>{navItem.children.map(renderNavItem)} : undefined + } /> ) })(groupItem), @@ -506,9 +564,15 @@ export default function Layout({ pageOpts, children }: NextraThemeLayoutProps setNavItemExpanded(group.route!, expanded, manual) + : undefined + } > {groupContent} @@ -622,12 +686,19 @@ function LinkWrapper({ children, ...props }: ComponentProps<'a'>) { return {children} } -function ImageWrapper({ src: passedSrc, className, ...props }: ImageProps) { +interface ImageWrapperProps extends Omit, 'src'> { + src?: ComponentProps['src'] + placeholder?: ComponentProps['placeholder'] +} + +function ImageWrapper({ src: passedSrc, placeholder: _placeholder, className, ...props }: ImageWrapperProps) { const linkContext = useContext(LinkContext) + const src = + typeof passedSrc === 'object' ? ('default' in passedSrc ? passedSrc.default.src : passedSrc.src) : passedSrc + if (linkContext || 'data-inline-image' in props) { - const src = - typeof passedSrc === 'object' ? ('default' in passedSrc ? passedSrc.default.src : passedSrc.src) : passedSrc return } - return + + return } diff --git a/website/src/layout/shared.ts b/website/src/layout/shared.ts index a398269ffe98..2847ca9b5a03 100644 --- a/website/src/layout/shared.ts +++ b/website/src/layout/shared.ts @@ -34,7 +34,6 @@ export type LayoutContextProps = { lastUpdated: Date | null readingTime: ReadingTime | null remotePageUrl: string | null - // TODO: Replace the following by a more cleaned up `navigation` object flatDocsDirectories: ReturnType['flatDocsDirectories'] activeIndex: ReturnType['activeIndex'] activePath: ReturnType['activePath'] diff --git a/packages/rehype-unwrap-images/index.js b/website/src/mdxPlugins/rehypeUnwrapImages.ts similarity index 63% rename from packages/rehype-unwrap-images/index.js rename to website/src/mdxPlugins/rehypeUnwrapImages.ts index b0161dc814df..35ee859ab8f4 100644 --- a/packages/rehype-unwrap-images/index.js +++ b/website/src/mdxPlugins/rehypeUnwrapImages.ts @@ -1,12 +1,19 @@ -/** - * @import {Root} from 'hast' - */ - +import type { Element, Node, Root } from 'hast' import { whitespace } from 'hast-util-whitespace' +import type { MdxJsxFlowElement, MdxJsxTextElement } from 'mdast-util-mdx-jsx' import { SKIP, visit } from 'unist-util-visit' -const isImage = (node) => - (node.type === 'element' && node.tagName === 'img') || (node.type === 'mdxJsxFlowElement' && node.name === 'img') +function isElement(node: Node): node is Element { + return node.type === 'element' +} + +function isMdxElement(node: Node): node is MdxJsxFlowElement | MdxJsxTextElement { + return node.type === 'mdxJsxFlowElement' || node.type === 'mdxJsxTextElement' +} + +function isImage(node: Node): boolean { + return (isElement(node) && node.tagName === 'img') || (isMdxElement(node) && node.name === 'img') +} /** * This plugin does two things: @@ -14,42 +21,28 @@ const isImage = (node) => * 2. Adds data attributes to help with image rendering: * - `data-wrapping-image` to links that contain an image * - `data-inline-image` to images that are in a paragraph with other content (text, links, etc.) - * - * @returns - * Transform. */ export default function rehypeUnwrapImages() { - /** - * Transform. - * - * @param {Root} tree - * Tree. - * @returns {undefined} - * Nothing. - */ - return function (tree) { + return function (tree: Root) { visit(tree, 'element', function (node, index, parent) { - if (node.tagName === 'p' && parent && typeof index === 'number') { + if (node.tagName === 'p' && typeof index === 'number' && parent) { // First pass: check if the paragraph contains any non-image content const hasNonImageContent = node.children.some((child) => { if (child.type === 'text') { return !whitespace(child.value) - } else { - return !isImage(child) } + return !isImage(child) }) // Second pass: add data attributes node.children.forEach((child) => { if (child.type === 'element' && child.tagName === 'a' && child.children.some(isImage)) { - child.properties = child.properties || {} child.properties['data-wrapping-image'] = true } else if (isImage(child) && hasNonImageContent) { - if (child.type === 'mdxJsxFlowElement') { - child.attributes = child.attributes || [] - child.attributes.push({ type: 'mdxJsxAttribute', name: 'data-inline-image', value: true }) - } else { - child.properties = child.properties || {} + // See https://github.com/rehypejs/rehype-unwrap-images/pull/1 + if (isMdxElement(child)) { + child.attributes.push({ type: 'mdxJsxAttribute', name: 'data-inline-image', value: 'true' }) + } else if (child.type === 'element') { child.properties['data-inline-image'] = true } } diff --git a/packages/remark-callouts/index.js b/website/src/mdxPlugins/remarkCallouts.ts similarity index 71% rename from packages/remark-callouts/index.js rename to website/src/mdxPlugins/remarkCallouts.ts index dbeff40f64cc..b7d4b628fac4 100644 --- a/packages/remark-callouts/index.js +++ b/website/src/mdxPlugins/remarkCallouts.ts @@ -1,24 +1,21 @@ +import type { Root } from 'mdast' import { visit } from 'unist-util-visit' +import 'mdast-util-to-hast' + export default function remarkCallouts() { - return (tree) => { + return (tree: Root) => { visit(tree, 'blockquote', (node) => { - if ( - node.children && - node.children.length > 0 && - node.children[0].type === 'paragraph' && - node.children[0].children && - node.children[0].children.length > 0 && - node.children[0].children[0].type === 'text' - ) { - const firstText = node.children[0].children[0] + const firstChild = node.children[0] + if (firstChild?.type === 'paragraph' && firstChild.children[0]?.type === 'text') { + const firstText = firstChild.children[0] // Look for a callout marker like [!NOTE] or [!WARNING] const calloutRegex = /^\s*\[!([a-zA-Z]+)\]\s*(.*)/ const match = calloutRegex.exec(firstText.value) - if (match) { + if (match?.[1]) { // Extract the callout type (e.g., "note") and remove the marker from the text const calloutType = match[1].toLowerCase() - firstText.value = match[2] + firstText.value = match[2] ?? '' // Attach the callout type as a data attribute node.data = node.data || {} diff --git a/website/src/mdxPlugins/remarkTransformRemoteDocs.ts b/website/src/mdxPlugins/remarkTransformRemoteDocs.ts new file mode 100644 index 000000000000..8dcc9bd19401 --- /dev/null +++ b/website/src/mdxPlugins/remarkTransformRemoteDocs.ts @@ -0,0 +1,61 @@ +import type { Heading, Link, Root, Yaml } from 'mdast' +import path from 'node:path' +import { EXIT, visit } from 'unist-util-visit' +import type { VFile } from 'vfile' + +import { ENGLISH_PAGES_DIRECTORY, REMOTE_DOCS_REPOS } from '../remoteDocs' + +const EXTERNAL_LINK_REGEX = /^(https?:)?\/\// + +export default function remarkTransformRemoteDocs() { + return (tree: Root, file: VFile) => { + // Only continue if the current file may have been fetched from one of the remote docs repos + const filePath = file.history[0] + if (!filePath) return + const docsAbsolutePath = `/${path.relative(ENGLISH_PAGES_DIRECTORY, filePath)}` + const repo = REMOTE_DOCS_REPOS.find((repo) => docsAbsolutePath.startsWith(repo.basePath)) + if (!repo) return + const docsRelativePath = docsAbsolutePath.substring(repo.basePath.length) + + // Rewrite relative links to ensure they work + visit(tree, 'link', (node: Link) => { + // Handle links that go up one or more directories, e.g. (foo)[../bar] + if (node.url.startsWith('../')) { + // Count how many levels up we're trying to go by counting leading `..` segments + const upCount = node.url.split('/').findIndex((segment) => segment !== '..') + // Count how many levels up we're allowed to go while staying in the docs + const maxUpCount = docsRelativePath.split('/').filter(Boolean).length - 1 + if (upCount > maxUpCount) { + // Going up beyond our docs root, transform to GitHub URL + node.url = `https://github.com/${path.join( + `${repo.user}/${repo.name}/tree/${repo.branch}/${repo.docsPath}${path.dirname(docsRelativePath)}`, + node.url, + )}` + return + } + } + // Stop here if the link is external (including if rewritten from above), internal but absolute, or an anchor on the current page + if (EXTERNAL_LINK_REGEX.test(node.url) || node.url.startsWith('/') || node.url.startsWith('#')) { + return + } + // Handle other links that are relative to the current path (e.g. (foo)[bar], (foo)[./bar], or even (foo)[../bar] if still within the docs) + node.url = path.join(repo.basePath, path.dirname(docsRelativePath), node.url) + }) + + // Replace h1 with YAML frontmatter + visit(tree, { type: 'heading', depth: 1 }, (node: Heading) => { + const firstChild = node.children[0] + if (!firstChild || !('value' in firstChild)) return + const yamlNode = node as unknown as Yaml + yamlNode.type = 'yaml' + yamlNode.value = `title: "${firstChild.value}" +remotePageUrl: https://github.com/${repo.user}/${repo.name}/tree/${repo.branch}/${repo.docsPath}${docsRelativePath}` + // @ts-expect-error: Removing heading properties when converting to YAML + delete yamlNode.depth + // @ts-expect-error: Removing heading properties when converting to YAML + delete yamlNode.children + delete yamlNode.position + return EXIT // stop traversing in case there are other h1 nodes + }) + } +} diff --git a/website/src/pages/ar/archived/arbitrum/arbitrum-faq.mdx b/website/src/pages/ar/archived/arbitrum/arbitrum-faq.mdx index e1dbbea03383..3ba1bf36fb9d 100644 --- a/website/src/pages/ar/archived/arbitrum/arbitrum-faq.mdx +++ b/website/src/pages/ar/archived/arbitrum/arbitrum-faq.mdx @@ -25,7 +25,6 @@ The Graph’s billing system accepts GRT on Arbitrum, and users will need ETH on Consequently, to pay for queries, you need GRT on Arbitrum. Here are a few different ways to achieve this: - If you already have GRT on Ethereum, you can bridge it to Arbitrum. You can do this via the GRT bridging option provided in Subgraph Studio or by using one of the following bridges: - - [The Arbitrum Bridge](https://bridge.arbitrum.io/?l2ChainId=42161) - [TransferTo](https://transferto.xyz/swap) diff --git a/website/src/pages/ar/indexing/overview.mdx b/website/src/pages/ar/indexing/overview.mdx index 50faf9406a27..d60ccaa0d9a6 100644 --- a/website/src/pages/ar/indexing/overview.mdx +++ b/website/src/pages/ar/indexing/overview.mdx @@ -680,13 +680,11 @@ graph indexer actions execute approve Note that supported action types for allocation management have different input requirements: - `Allocate` - allocate stake to a specific Subgraph deployment - - required action params: - deploymentID - amount - `Unallocate` - close allocation, freeing up the stake to reallocate elsewhere - - required action params: - allocationID - deploymentID @@ -695,7 +693,6 @@ Note that supported action types for allocation management have different input - force (forces using the provided POI even if it doesn’t match what the graph-node provides) - `Reallocate` - atomically close allocation and open a fresh allocation for the same Subgraph deployment - - required action params: - allocationID - deploymentID diff --git a/website/src/pages/ar/indexing/tap.mdx b/website/src/pages/ar/indexing/tap.mdx index e7085e5680bb..4a5ca8013ecc 100644 --- a/website/src/pages/ar/indexing/tap.mdx +++ b/website/src/pages/ar/indexing/tap.mdx @@ -38,7 +38,6 @@ As long as you run `tap-agent` and `indexer-agent`, everything will be executed 3. `indexer-agent` takes all the last RAVS and sends redeem requests to the blockchain, which will update the value of `redeem_at`. 4. During the `` period, `indexer-agent` monitors if the blockchain has any reorganizations that revert the transaction. - - If it was reverted, the RAV is resent to the blockchain. If it was not reverted, it gets marked as `final`. ## Blockchain Addresses @@ -77,17 +76,14 @@ The required software version can be found [here](https://github.com/graphprotoc ### Steps 1. **Indexer Agent** - - Follow the [same process](https://github.com/graphprotocol/indexer/pkgs/container/indexer-agent#graph-protocol-indexer-components). - Give the new argument `--tap-subgraph-endpoint` to activate the new GraphTally codepaths and enable redeeming of RAVs. 2. **Indexer Service** - - Fully replace your current configuration with the [new Indexer Service rs](https://github.com/graphprotocol/indexer-rs). It's recommend that you use the [container image](https://github.com/orgs/graphprotocol/packages?repo_name=indexer-rs). - Like the older version, you can scale Indexer Service horizontally easily. It is still stateless. 3. **TAP Agent** - - Run _one_ single instance of [TAP Agent](https://github.com/graphprotocol/indexer-rs) at all times. It's recommend that you use the [container image](https://github.com/orgs/graphprotocol/packages?repo_name=indexer-rs). 4. **Configure Indexer Service and TAP Agent** diff --git a/website/src/pages/ar/resources/glossary.mdx b/website/src/pages/ar/resources/glossary.mdx index d456a94f63ab..7287d4aacff6 100644 --- a/website/src/pages/ar/resources/glossary.mdx +++ b/website/src/pages/ar/resources/glossary.mdx @@ -15,7 +15,6 @@ title: قائمة المصطلحات - **Indexer**: Network participants that run indexing nodes to index data from blockchains and serve GraphQL queries. - **Indexer Revenue Streams**: Indexers are rewarded in GRT with two components: query fee rebates and indexing rewards. - 1. **Query Fee Rebates**: Payments from Subgraph consumers for serving queries on the network. 2. **Indexing Rewards**: The rewards that Indexers receive for indexing Subgraphs. Indexing rewards are generated via new issuance of 3% GRT annually. @@ -43,7 +42,6 @@ title: قائمة المصطلحات - **Epoch**: A unit of time within the network. Currently, one epoch is 6,646 blocks or approximately 1 day. - **Allocation**: An Indexer can allocate their total GRT stake (including Delegators' stake) towards Subgraphs that have been published on The Graph's decentralized network. Allocations can have different statuses: - 1. **Active**: An allocation is considered active when it is created onchain. This is called opening an allocation, and indicates to the network that the Indexer is actively indexing and serving queries for a particular Subgraph. Active allocations accrue indexing rewards proportional to the signal on the Subgraph, and the amount of GRT allocated. 2. **Closed**: An Indexer may claim the accrued indexing rewards on a given Subgraph by submitting a recent, and valid, Proof of Indexing (POI). This is known as closing an allocation. An allocation must have been open for a minimum of one epoch before it can be closed. The maximum allocation period is 28 epochs. If an Indexer leaves an allocation open beyond 28 epochs, it is known as a stale allocation. When an allocation is in the **Closed** state, a Fisherman can still open a dispute to challenge an Indexer for serving false data. diff --git a/website/src/pages/ar/resources/roles/delegating/undelegating.mdx b/website/src/pages/ar/resources/roles/delegating/undelegating.mdx index 274fd08e0269..4889d7370407 100644 --- a/website/src/pages/ar/resources/roles/delegating/undelegating.mdx +++ b/website/src/pages/ar/resources/roles/delegating/undelegating.mdx @@ -13,13 +13,11 @@ Learn how to withdraw your delegated tokens through [Graph Explorer](https://the 1. Visit [Graph Explorer](https://thegraph.com/explorer). Please make sure you're on Explorer and **not** Subgraph Studio. 2. Click on your profile. You can find it on the top right corner of the page. - - Make sure that your wallet is connected. If it's not connected, you will see the "connect" button instead. 3. Once you're in your profile, click on the Delegating tab. In the Delegating tab, you can view the list of Indexers you have delegated to. 4. Click on the Indexer from which you wish to withdraw your tokens. - - Make sure to note the specific Indexer, as you will need to find them again to withdraw. 5. Select the "Undelegate" option by clicking on the three dots next to the Indexer on the right side, see image below: @@ -37,11 +35,9 @@ Learn how to withdraw your delegated tokens through [Graph Explorer](https://the ### Step-by-Step 1. Find your delegation transaction on Arbiscan. - - Here's an [example transaction on Arbiscan](https://arbiscan.io/tx/0xcf2110eac897099f821064445041031efb32786392bdbe7544a4cb7a6b2e4f9a) 2. Navigate to "Transaction Action" where you can find the staking extension contract: - - [This is the staking extension contract for the example listed above](https://arbiscan.io/address/0x00669A4CF01450B64E8A2A20E9b1FCB71E61eF03) 3. Then click on "Contract". ![Contract tab on Arbiscan, between NFT Transfers and Events](/img/arbiscan-contract.png) @@ -59,7 +55,6 @@ Learn how to withdraw your delegated tokens through [Graph Explorer](https://the 9. If you don't know how many tokens you delegated, you can call `getDelegation` on the Read Custom tab. You will need to paste your address (delegator address) and the address of the Indexer that you delegated to, as shown in the following screenshot: ![Both of the addresses needed](/img/get-delegate.png) - - This will return three numbers. The first number is the amount you can unstake. 10. After you have called `unstake`, you can withdraw after approximately 28 epochs (28 days) by calling the `withdraw` function. diff --git a/website/src/pages/ar/subgraphs/best-practices/grafting-hotfix.mdx b/website/src/pages/ar/subgraphs/best-practices/grafting-hotfix.mdx index d8de3e7a1fa2..a26667e114cb 100644 --- a/website/src/pages/ar/subgraphs/best-practices/grafting-hotfix.mdx +++ b/website/src/pages/ar/subgraphs/best-practices/grafting-hotfix.mdx @@ -14,12 +14,10 @@ This feature enables quick deployment of hotfixes for critical issues, eliminati ## Benefits of Grafting for Hotfixes 1. **Rapid Deployment** - - **Minimize Downtime**: When a Subgraph encounters a critical error and stops indexing, grafting enables you to deploy a fix immediately without waiting for re-indexing. - **Immediate Recovery**: The new Subgraph continues from the last indexed block, ensuring that data services remain uninterrupted. 2. **Data Preservation** - - **Reuse Historical Data**: Grafting copies the existing data from the base Subgraph, so you don’t lose valuable historical records. - **Consistency**: Maintains data continuity, which is crucial for applications relying on consistent historical data. @@ -30,19 +28,16 @@ This feature enables quick deployment of hotfixes for critical issues, eliminati ## Best Practices When Using Grafting for Hotfixes 1. **Initial Deployment Without Grafting** - - **Start Clean**: Always deploy your initial Subgraph without grafting to ensure that it’s stable and functions as expected. - **Test Thoroughly**: Validate the Subgraph’s performance to minimize the need for future hotfixes. 2. **Implementing the Hotfix with Grafting** - - **Identify the Issue**: When a critical error occurs, determine the block number of the last successfully indexed event. - **Create a New Subgraph**: Develop a new Subgraph that includes the hotfix. - **Configure Grafting**: Use grafting to copy data up to the identified block number from the failed Subgraph. - **Deploy Quickly**: Publish the grafted Subgraph to restore service as soon as possible. 3. **Post-Hotfix Actions** - - **Monitor Performance**: Ensure the grafted Subgraph is indexing correctly and the hotfix resolves the issue. - **Republish Without Grafting**: Once stable, deploy a new version of the Subgraph without grafting for long-term maintenance. > Note: Relying on grafting indefinitely is not recommended as it can complicate future updates and maintenance. @@ -130,7 +125,6 @@ Suppose you have a Subgraph tracking a smart contract that has stopped indexing - **block**: Block number where grafting should begin. 3. **Deployment Steps** - - **Update the Code**: Implement the hotfix in your mapping scripts (e.g., handleWithdrawal). - **Adjust the Manifest**: As shown above, update the `subgraph.yaml` with grafting configurations. - **Deploy the Subgraph**: diff --git a/website/src/pages/ar/subgraphs/developing/creating/install-the-cli.mdx b/website/src/pages/ar/subgraphs/developing/creating/install-the-cli.mdx index 81469bc1837b..618eedef134d 100644 --- a/website/src/pages/ar/subgraphs/developing/creating/install-the-cli.mdx +++ b/website/src/pages/ar/subgraphs/developing/creating/install-the-cli.mdx @@ -46,7 +46,6 @@ graph init \ ``` - The command tries to retrieve the contract ABI from Etherscan. - - The Graph CLI relies on a public RPC endpoint. While occasional failures are expected, retries typically resolve this issue. If failures persist, consider using a local ABI. - If any of the optional arguments are missing, it guides you through an interactive form. @@ -87,7 +86,6 @@ Options: The `graph add` command will fetch the ABI from Etherscan (unless an ABI path is specified with the `--abi` option) and creates a new `dataSource`, similar to how the `graph init` command creates a `dataSource` `--from-contract`, updating the schema and mappings accordingly. This allows you to index implementation contracts from their proxy contracts. - The `--merge-entities` option identifies how the developer would like to handle `entity` and `event` name conflicts: - - If `true`: the new `dataSource` should use existing `eventHandlers` & `entities`. - If `false`: a new `entity` & `event` handler should be created with `${dataSourceName}{EventName}`. diff --git a/website/src/pages/ar/subgraphs/developing/managing/deleting-a-subgraph.mdx b/website/src/pages/ar/subgraphs/developing/managing/deleting-a-subgraph.mdx index b8c2330ca49d..f842a0e04ac4 100644 --- a/website/src/pages/ar/subgraphs/developing/managing/deleting-a-subgraph.mdx +++ b/website/src/pages/ar/subgraphs/developing/managing/deleting-a-subgraph.mdx @@ -17,7 +17,6 @@ Delete your Subgraph using [Subgraph Studio](https://thegraph.com/studio/). ![Delete-subgraph](/img/Delete-subgraph.png) 4. Depending on the Subgraph's status, you will be prompted with various options. - - If the Subgraph is not published, simply click “delete” and confirm. - If the Subgraph is published, you will need to confirm on your wallet before the Subgraph can be deleted from Studio. If a Subgraph is published to multiple networks, such as testnet and mainnet, additional steps may be required. diff --git a/website/src/pages/ar/subgraphs/explorer.mdx b/website/src/pages/ar/subgraphs/explorer.mdx index 57d7712cc383..aed2e0dd8b70 100644 --- a/website/src/pages/ar/subgraphs/explorer.mdx +++ b/website/src/pages/ar/subgraphs/explorer.mdx @@ -26,7 +26,6 @@ When you click into a Subgraph, you will be able to do the following: - Test queries in the playground and be able to leverage network details to make informed decisions. - Signal GRT on your own Subgraph or the Subgraphs of others to make indexers aware of its importance and quality. - - This is critical because signaling on a Subgraph incentivizes it to be indexed, meaning it’ll eventually surface on the network to serve queries. ![Explorer Image 2](/img/Subgraph-Details.png) diff --git a/website/src/pages/ar/subgraphs/mcp/claude.mdx b/website/src/pages/ar/subgraphs/mcp/claude.mdx index 8b61438d2ab7..027b272cb942 100644 --- a/website/src/pages/ar/subgraphs/mcp/claude.mdx +++ b/website/src/pages/ar/subgraphs/mcp/claude.mdx @@ -85,7 +85,6 @@ Once you've entered your Gateway API key into your settings, save the file and r 2. **Find the Command Path** After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. - - Navigate to your `subgraph-mcp` directory in terminal - Run `pwd` to get the full path - Combine the output with `/target/release/subgraph-mcp` diff --git a/website/src/pages/ar/subgraphs/quick-start.mdx b/website/src/pages/ar/subgraphs/quick-start.mdx index 9b7bf860e87d..c2e395b05bd3 100644 --- a/website/src/pages/ar/subgraphs/quick-start.mdx +++ b/website/src/pages/ar/subgraphs/quick-start.mdx @@ -166,11 +166,9 @@ To customize your deployment, see [Publishing a Subgraph](/subgraphs/developing/ #### Adding signal to your Subgraph 1. To attract Indexers to query your Subgraph, you should add GRT curation signal to it. - - This action improves quality of service, reduces latency, and enhances network redundancy and availability for your Subgraph. 2. If eligible for indexing rewards, Indexers receive GRT rewards based on the signaled amount. - - It’s recommended to curate at least 3,000 GRT to attract 3 Indexers. Check reward eligibility based on Subgraph feature usage and supported networks. To learn more about curation, read [Curating](/resources/roles/curating/). diff --git a/website/src/pages/cs/archived/arbitrum/arbitrum-faq.mdx b/website/src/pages/cs/archived/arbitrum/arbitrum-faq.mdx index df47adfff704..8e1fa90686de 100644 --- a/website/src/pages/cs/archived/arbitrum/arbitrum-faq.mdx +++ b/website/src/pages/cs/archived/arbitrum/arbitrum-faq.mdx @@ -25,7 +25,6 @@ Fakturační systém Graf přijímá GRT na Arbitrum a uživatelé budou potřeb Abyste mohli platit za dotazy, potřebujete GRT na Arbitrum. Zde je několik různých způsobů, jak toho dosáhnout: - Pokud již máte GRT na platformě Ethereum, můžete ji přemostit na Arbitrum. Můžete tak učinit pomocí možnosti přemostění GRT, která je k dispozici v podgraf Studio, nebo pomocí jednoho z následujících přemostění: - - [The Arbitrum Bridge](https://bridge.arbitrum.io/?l2ChainId=42161) - [TransferTo](https://transferto.xyz/swap) diff --git a/website/src/pages/cs/indexing/overview.mdx b/website/src/pages/cs/indexing/overview.mdx index 6427052cb74a..f623c99815c0 100644 --- a/website/src/pages/cs/indexing/overview.mdx +++ b/website/src/pages/cs/indexing/overview.mdx @@ -680,13 +680,11 @@ graph indexer actions execute approve Note that supported action types for allocation management have different input requirements: - `Allocate` - allocate stake to a specific Subgraph deployment - - required action params: - deploymentID - amount - `Unallocate` - close allocation, freeing up the stake to reallocate elsewhere - - required action params: - allocationID - deploymentID @@ -695,7 +693,6 @@ Note that supported action types for allocation management have different input - force (forces using the provided POI even if it doesn’t match what the graph-node provides) - `Reallocate` - atomically close allocation and open a fresh allocation for the same Subgraph deployment - - required action params: - allocationID - deploymentID diff --git a/website/src/pages/cs/indexing/tap.mdx b/website/src/pages/cs/indexing/tap.mdx index 6063720aca9d..a3a241754589 100644 --- a/website/src/pages/cs/indexing/tap.mdx +++ b/website/src/pages/cs/indexing/tap.mdx @@ -38,7 +38,6 @@ As long as you run `tap-agent` and `indexer-agent`, everything will be executed 3. `indexer-agent` takes all the last RAVS and sends redeem requests to the blockchain, which will update the value of `redeem_at`. 4. During the `` period, `indexer-agent` monitors if the blockchain has any reorganizations that revert the transaction. - - If it was reverted, the RAV is resent to the blockchain. If it was not reverted, it gets marked as `final`. ## Blockchain Addresses @@ -77,17 +76,14 @@ The required software version can be found [here](https://github.com/graphprotoc ### Steps 1. **Indexer Agent** - - Follow the [same process](https://github.com/graphprotocol/indexer/pkgs/container/indexer-agent#graph-protocol-indexer-components). - Give the new argument `--tap-subgraph-endpoint` to activate the new GraphTally codepaths and enable redeeming of RAVs. 2. **Indexer Service** - - Fully replace your current configuration with the [new Indexer Service rs](https://github.com/graphprotocol/indexer-rs). It's recommend that you use the [container image](https://github.com/orgs/graphprotocol/packages?repo_name=indexer-rs). - Like the older version, you can scale Indexer Service horizontally easily. It is still stateless. 3. **TAP Agent** - - Run _one_ single instance of [TAP Agent](https://github.com/graphprotocol/indexer-rs) at all times. It's recommend that you use the [container image](https://github.com/orgs/graphprotocol/packages?repo_name=indexer-rs). 4. **Configure Indexer Service and TAP Agent** diff --git a/website/src/pages/cs/resources/glossary.mdx b/website/src/pages/cs/resources/glossary.mdx index 49fd1f60c539..e111e7e9dd1e 100644 --- a/website/src/pages/cs/resources/glossary.mdx +++ b/website/src/pages/cs/resources/glossary.mdx @@ -15,7 +15,6 @@ title: Glosář - **Indexer**: Network participants that run indexing nodes to index data from blockchains and serve GraphQL queries. - **Indexer Revenue Streams**: Indexers are rewarded in GRT with two components: query fee rebates and indexing rewards. - 1. **Query Fee Rebates**: Payments from Subgraph consumers for serving queries on the network. 2. **Indexing Rewards**: The rewards that Indexers receive for indexing Subgraphs. Indexing rewards are generated via new issuance of 3% GRT annually. @@ -43,7 +42,6 @@ title: Glosář - **Epoch**: A unit of time within the network. Currently, one epoch is 6,646 blocks or approximately 1 day. - **Allocation**: An Indexer can allocate their total GRT stake (including Delegators' stake) towards Subgraphs that have been published on The Graph's decentralized network. Allocations can have different statuses: - 1. **Active**: An allocation is considered active when it is created onchain. This is called opening an allocation, and indicates to the network that the Indexer is actively indexing and serving queries for a particular Subgraph. Active allocations accrue indexing rewards proportional to the signal on the Subgraph, and the amount of GRT allocated. 2. **Closed**: An Indexer may claim the accrued indexing rewards on a given Subgraph by submitting a recent, and valid, Proof of Indexing (POI). This is known as closing an allocation. An allocation must have been open for a minimum of one epoch before it can be closed. The maximum allocation period is 28 epochs. If an Indexer leaves an allocation open beyond 28 epochs, it is known as a stale allocation. When an allocation is in the **Closed** state, a Fisherman can still open a dispute to challenge an Indexer for serving false data. diff --git a/website/src/pages/cs/resources/roles/delegating/undelegating.mdx b/website/src/pages/cs/resources/roles/delegating/undelegating.mdx index 071253821e63..c1d2ac50737b 100644 --- a/website/src/pages/cs/resources/roles/delegating/undelegating.mdx +++ b/website/src/pages/cs/resources/roles/delegating/undelegating.mdx @@ -13,13 +13,11 @@ Learn how to withdraw your delegated tokens through [Graph Explorer](https://the 1. Visit [Graph Explorer](https://thegraph.com/explorer). Please make sure you're on Explorer and **not** Subgraph Studio. 2. Click on your profile. You can find it on the top right corner of the page. - - Make sure that your wallet is connected. If it's not connected, you will see the "connect" button instead. 3. Once you're in your profile, click on the Delegating tab. In the Delegating tab, you can view the list of Indexers you have delegated to. 4. Click on the Indexer from which you wish to withdraw your tokens. - - Make sure to note the specific Indexer, as you will need to find them again to withdraw. 5. Select the "Undelegate" option by clicking on the three dots next to the Indexer on the right side, see image below: @@ -37,11 +35,9 @@ Learn how to withdraw your delegated tokens through [Graph Explorer](https://the ### Step-by-Step 1. Find your delegation transaction on Arbiscan. - - Here's an [example transaction on Arbiscan](https://arbiscan.io/tx/0xcf2110eac897099f821064445041031efb32786392bdbe7544a4cb7a6b2e4f9a) 2. Navigate to "Transaction Action" where you can find the staking extension contract: - - [This is the staking extension contract for the example listed above](https://arbiscan.io/address/0x00669A4CF01450B64E8A2A20E9b1FCB71E61eF03) 3. Then click on "Contract". ![Contract tab on Arbiscan, between NFT Transfers and Events](/img/arbiscan-contract.png) @@ -59,7 +55,6 @@ Learn how to withdraw your delegated tokens through [Graph Explorer](https://the 9. If you don't know how many tokens you delegated, you can call `getDelegation` on the Read Custom tab. You will need to paste your address (delegator address) and the address of the Indexer that you delegated to, as shown in the following screenshot: ![Both of the addresses needed](/img/get-delegate.png) - - This will return three numbers. The first number is the amount you can unstake. 10. After you have called `unstake`, you can withdraw after approximately 28 epochs (28 days) by calling the `withdraw` function. diff --git a/website/src/pages/cs/subgraphs/best-practices/grafting-hotfix.mdx b/website/src/pages/cs/subgraphs/best-practices/grafting-hotfix.mdx index 541cf76d0f7a..722321179ea8 100644 --- a/website/src/pages/cs/subgraphs/best-practices/grafting-hotfix.mdx +++ b/website/src/pages/cs/subgraphs/best-practices/grafting-hotfix.mdx @@ -14,12 +14,10 @@ This feature enables quick deployment of hotfixes for critical issues, eliminati ## Benefits of Grafting for Hotfixes 1. **Rapid Deployment** - - **Minimize Downtime**: When a Subgraph encounters a critical error and stops indexing, grafting enables you to deploy a fix immediately without waiting for re-indexing. - **Immediate Recovery**: The new Subgraph continues from the last indexed block, ensuring that data services remain uninterrupted. 2. **Data Preservation** - - **Reuse Historical Data**: Grafting copies the existing data from the base Subgraph, so you don’t lose valuable historical records. - **Consistency**: Maintains data continuity, which is crucial for applications relying on consistent historical data. @@ -30,19 +28,16 @@ This feature enables quick deployment of hotfixes for critical issues, eliminati ## Best Practices When Using Grafting for Hotfixes 1. **Initial Deployment Without Grafting** - - **Start Clean**: Always deploy your initial Subgraph without grafting to ensure that it’s stable and functions as expected. - **Test Thoroughly**: Validate the Subgraph’s performance to minimize the need for future hotfixes. 2. **Implementing the Hotfix with Grafting** - - **Identify the Issue**: When a critical error occurs, determine the block number of the last successfully indexed event. - **Create a New Subgraph**: Develop a new Subgraph that includes the hotfix. - **Configure Grafting**: Use grafting to copy data up to the identified block number from the failed Subgraph. - **Deploy Quickly**: Publish the grafted Subgraph to restore service as soon as possible. 3. **Post-Hotfix Actions** - - **Monitor Performance**: Ensure the grafted Subgraph is indexing correctly and the hotfix resolves the issue. - **Republish Without Grafting**: Once stable, deploy a new version of the Subgraph without grafting for long-term maintenance. > Note: Relying on grafting indefinitely is not recommended as it can complicate future updates and maintenance. @@ -130,7 +125,6 @@ Suppose you have a Subgraph tracking a smart contract that has stopped indexing - **block**: Block number where grafting should begin. 3. **Deployment Steps** - - **Update the Code**: Implement the hotfix in your mapping scripts (e.g., handleWithdrawal). - **Adjust the Manifest**: As shown above, update the `subgraph.yaml` with grafting configurations. - **Deploy the Subgraph**: diff --git a/website/src/pages/cs/subgraphs/developing/creating/install-the-cli.mdx b/website/src/pages/cs/subgraphs/developing/creating/install-the-cli.mdx index 536b416c9465..b3017d99c11d 100644 --- a/website/src/pages/cs/subgraphs/developing/creating/install-the-cli.mdx +++ b/website/src/pages/cs/subgraphs/developing/creating/install-the-cli.mdx @@ -46,7 +46,6 @@ graph init \ ``` - The command tries to retrieve the contract ABI from Etherscan. - - The Graph CLI relies on a public RPC endpoint. While occasional failures are expected, retries typically resolve this issue. If failures persist, consider using a local ABI. - If any of the optional arguments are missing, it guides you through an interactive form. @@ -87,7 +86,6 @@ Options: The `graph add` command will fetch the ABI from Etherscan (unless an ABI path is specified with the `--abi` option) and creates a new `dataSource`, similar to how the `graph init` command creates a `dataSource` `--from-contract`, updating the schema and mappings accordingly. This allows you to index implementation contracts from their proxy contracts. - The `--merge-entities` option identifies how the developer would like to handle `entity` and `event` name conflicts: - - If `true`: the new `dataSource` should use existing `eventHandlers` & `entities`. - If `false`: a new `entity` & `event` handler should be created with `${dataSourceName}{EventName}`. diff --git a/website/src/pages/cs/subgraphs/developing/managing/deleting-a-subgraph.mdx b/website/src/pages/cs/subgraphs/developing/managing/deleting-a-subgraph.mdx index b8c2330ca49d..f842a0e04ac4 100644 --- a/website/src/pages/cs/subgraphs/developing/managing/deleting-a-subgraph.mdx +++ b/website/src/pages/cs/subgraphs/developing/managing/deleting-a-subgraph.mdx @@ -17,7 +17,6 @@ Delete your Subgraph using [Subgraph Studio](https://thegraph.com/studio/). ![Delete-subgraph](/img/Delete-subgraph.png) 4. Depending on the Subgraph's status, you will be prompted with various options. - - If the Subgraph is not published, simply click “delete” and confirm. - If the Subgraph is published, you will need to confirm on your wallet before the Subgraph can be deleted from Studio. If a Subgraph is published to multiple networks, such as testnet and mainnet, additional steps may be required. diff --git a/website/src/pages/cs/subgraphs/explorer.mdx b/website/src/pages/cs/subgraphs/explorer.mdx index 2d918567ee9d..3a3ddf7e6d1a 100644 --- a/website/src/pages/cs/subgraphs/explorer.mdx +++ b/website/src/pages/cs/subgraphs/explorer.mdx @@ -26,7 +26,6 @@ When you click into a Subgraph, you will be able to do the following: - Test queries in the playground and be able to leverage network details to make informed decisions. - Signal GRT on your own Subgraph or the Subgraphs of others to make indexers aware of its importance and quality. - - This is critical because signaling on a Subgraph incentivizes it to be indexed, meaning it’ll eventually surface on the network to serve queries. ![Explorer Image 2](/img/Subgraph-Details.png) diff --git a/website/src/pages/cs/subgraphs/mcp/claude.mdx b/website/src/pages/cs/subgraphs/mcp/claude.mdx index 8b61438d2ab7..027b272cb942 100644 --- a/website/src/pages/cs/subgraphs/mcp/claude.mdx +++ b/website/src/pages/cs/subgraphs/mcp/claude.mdx @@ -85,7 +85,6 @@ Once you've entered your Gateway API key into your settings, save the file and r 2. **Find the Command Path** After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. - - Navigate to your `subgraph-mcp` directory in terminal - Run `pwd` to get the full path - Combine the output with `/target/release/subgraph-mcp` diff --git a/website/src/pages/cs/subgraphs/quick-start.mdx b/website/src/pages/cs/subgraphs/quick-start.mdx index 7c52d4745a83..a7cca7a3a267 100644 --- a/website/src/pages/cs/subgraphs/quick-start.mdx +++ b/website/src/pages/cs/subgraphs/quick-start.mdx @@ -166,11 +166,9 @@ To customize your deployment, see [Publishing a Subgraph](/subgraphs/developing/ #### Adding signal to your Subgraph 1. To attract Indexers to query your Subgraph, you should add GRT curation signal to it. - - This action improves quality of service, reduces latency, and enhances network redundancy and availability for your Subgraph. 2. If eligible for indexing rewards, Indexers receive GRT rewards based on the signaled amount. - - It’s recommended to curate at least 3,000 GRT to attract 3 Indexers. Check reward eligibility based on Subgraph feature usage and supported networks. To learn more about curation, read [Curating](/resources/roles/curating/). diff --git a/website/src/pages/de/archived/arbitrum/arbitrum-faq.mdx b/website/src/pages/de/archived/arbitrum/arbitrum-faq.mdx index 6fa6fbe5faaf..526c02daaf5d 100644 --- a/website/src/pages/de/archived/arbitrum/arbitrum-faq.mdx +++ b/website/src/pages/de/archived/arbitrum/arbitrum-faq.mdx @@ -25,7 +25,6 @@ Das Abrechnungssystem von The Graph akzeptiert GRT auf Arbitrum, und die Nutzer Um Abfragen zu bezahlen brauchen Sie also GRT auf Arbitrum. Hier sind ein paar Möglichkeiten, dies zu erreichen: - Wenn Sie bereits GRT auf Ethereum haben, können Sie es zu Arbitrum überbrücken. Sie können dieses über GRT-Bridging-Option in Subgraph Studio tun oder eine der folgenden Bridges verwenden: - - [Die Arbitrum-Brücke] (https://bridge.arbitrum.io/?l2ChainId=42161) - [TransferTo](https://transferto.xyz/swap) diff --git a/website/src/pages/de/indexing/overview.mdx b/website/src/pages/de/indexing/overview.mdx index 3305ea5d4b2e..37a5a5c4f21b 100644 --- a/website/src/pages/de/indexing/overview.mdx +++ b/website/src/pages/de/indexing/overview.mdx @@ -680,13 +680,11 @@ graph indexer actions execute approve Beachten Sie, dass unterstützte Aktionstypen für das Allokationsmanagement unterschiedliche Eingabeanforderungen haben: - `Allocate` - Zuweisung eines Einsatzes für einen bestimmten Einsatz von Subgraphen - - erforderliche Aktionsparameter: - deploymentID - amount - `Unallocate` - Beendigung der Zuweisung, wodurch der Einsatz für eine andere Zuweisung frei wird - - erforderliche Aktionsparameter: - allocationID - deploymentID @@ -695,7 +693,6 @@ Beachten Sie, dass unterstützte Aktionstypen für das Allokationsmanagement unt - force (erzwingt die Verwendung des bereitgestellten POI, auch wenn es nicht mit dem übereinstimmt, was der Graph-Knoten bereitstellt) - `Reallocate` - Zuordnung atomar schließen und eine neue Zuordnung für denselben Einsatz von Subgraphen öffnen - - erforderliche Aktionsparameter: - allocationID - deploymentID diff --git a/website/src/pages/de/indexing/tap.mdx b/website/src/pages/de/indexing/tap.mdx index a3eec839d931..488af8595bbd 100644 --- a/website/src/pages/de/indexing/tap.mdx +++ b/website/src/pages/de/indexing/tap.mdx @@ -38,7 +38,6 @@ Solange Sie `tap-agent` und `indexer-agent` ausführen, wird alles automatisch a 3. `indexer-agent` nimmt alle letzten RAVS und sendet Einlöseanforderungen an die Blockchain, die den Wert von ‚redeem_at‘ aktualisiert. 4. Während der ``-Periode überwacht der `indexer-agent`, ob es in der Blockchain irgendwelche Reorganisationen gibt, die die Transaktion rückgängig machen. - - Wurde es rückgängig gemacht, wird das RAV erneut an die Blockchain gesendet. Wenn es nicht rückgängig gemacht wurde, wird es als `final` markiert. ## Blockchain-Adressen @@ -77,17 +76,14 @@ Die erforderliche Softwareversion finden Sie [hier](https://github.com/graphprot ### Schritte 1. **Indexer-Agent** - - Folgen Sie dem [gleichen Prozess](https://github.com/graphprotocol/indexer/pkgs/container/indexer-agent#graph-protocol-indexer-components). - Give the new argument `--tap-subgraph-endpoint` to activate the new GraphTally codepaths and enable redeeming of RAVs. 2. **Indexer-Service** - - Ersetzen Sie Ihre aktuelle Konfiguration vollständig durch den [neuen Indexer-Service rs](https://github.com/graphprotocol/indexer-rs). Es wird empfohlen, dass Sie das [Containerbild](https://github.com/orgs/graphprotocol/packages?repo_name=indexer-rs) verwenden. - Wie bei der älteren Version können Sie den Indexer-Service problemlos horizontal skalieren. Er ist immer noch zustandslos. 3. **TAP Agent** - - Führen Sie immer _eine_ einzelne Instanz von [TAP Agent](https://github.com/graphprotocol/indexer-rs) aus. Es wird empfohlen, dass Sie das [Container-Image](https://github.com/orgs/graphprotocol/packages?repo_name=indexer-rs) verwenden. 4. **Indexer-Service und TAP-Agent konfigurieren** diff --git a/website/src/pages/de/resources/glossary.mdx b/website/src/pages/de/resources/glossary.mdx index 921c1f6225ae..4fdf7f556348 100644 --- a/website/src/pages/de/resources/glossary.mdx +++ b/website/src/pages/de/resources/glossary.mdx @@ -15,7 +15,6 @@ title: Glossar - **Indexierer**: Netzwerkteilnehmer, die Indexierungsknoten betreiben, um Daten aus Blockchains zu indexieren und GraphQL-Abfragen zu bedienen. - **Einkommensströme für Indexierer**: Indexierer werden in GRT mit zwei Komponenten belohnt: Rabatte auf Abfragegebühren und Rewards für die Indizierung. - 1. **Abfragegebühren-Rabatte**: Zahlungen von Subgraph-Konsumenten für die Bedienung von Anfragen im Netz. 2. **Indizierung-Rewards**: Die Rewards, die Indexierer für die Indizierung von Subgraphen erhalten. Indizierung-Rewards werden durch die Neuausgabe von 3% GRT jährlich generiert. @@ -43,7 +42,6 @@ title: Glossar - **Epoche**: Eine Zeiteinheit innerhalb des Netzes. Derzeit entspricht eine Epoche 6.646 Blöcken oder etwa 1 Tag. - **Allocation**: An Indexer can allocate their total GRT stake (including Delegators' stake) towards Subgraphs that have been published on The Graph's decentralized network. Allocations can have different statuses: - 1. **Aktiv**: Eine Zuordnung gilt als aktiv, wenn sie onchain erstellt wird. Dies wird als Öffnen einer Zuordnung bezeichnet und zeigt dem Netzwerk an, dass der Indexierer aktiv indiziert und Abfragen für einen bestimmten Subgraphen bedient. Aktive Zuweisungen sammeln Rewards für die Indizierung, die proportional zum Signal auf dem Subgraphen und der Menge des zugewiesenen GRT sind. 2. **Geschlossen**: Ein Indexierer kann die aufgelaufenen Rewards für einen bestimmten Subgraphen beanspruchen, indem er einen aktuellen und gültigen Proof of Indexing (POI) einreicht. Dies wird als Schließen einer Zuordnung bezeichnet. Eine Zuordnung muss mindestens eine Epoche lang offen gewesen sein, bevor sie geschlossen werden kann. Die maximale Zuordnungsdauer beträgt 28 Epochen. Lässt ein Indexierer eine Zuordnung länger als 28 Epochen offen, wird sie als veraltete Zuordnung bezeichnet. Wenn sich eine Zuordnung im Zustand **Geschlossen** befindet, kann ein Fisher immer noch einen Disput eröffnen, um einen Indexierer wegen der Bereitstellung falscher Daten anzufechten. diff --git a/website/src/pages/de/resources/roles/delegating/undelegating.mdx b/website/src/pages/de/resources/roles/delegating/undelegating.mdx index 116bfb6110f5..22b014be39cd 100644 --- a/website/src/pages/de/resources/roles/delegating/undelegating.mdx +++ b/website/src/pages/de/resources/roles/delegating/undelegating.mdx @@ -13,13 +13,11 @@ Erfahren Sie, wie Sie Ihre delegierten Token über [Graph Explorer] (https://the 1. Besuchen Sie [Graph Explorer] (https://thegraph.com/explorer). Bitte vergewissern Sie sich, dass Sie den Explorer und **nicht** Subgraph Studio verwenden. 2. Klicken Sie auf Ihr Profil. Sie finden es in der oberen rechten Ecke der Seite. - - Vergewissern Sie sich, dass Ihre Wallet verbunden ist. Wenn sie nicht verbunden ist, sehen Sie stattdessen die Schaltfläche „Verbinden“. 3. Sobald Sie sich in Ihrem Profil befinden, klicken Sie auf die Registerkarte „Delegieren". Auf der Registerkarte „Delegieren“ können Sie die Liste der Indexierer einsehen, an die Sie delegiert haben. 4. Klicken Sie auf den Indexierer, von dem Sie Ihre Token abheben möchten. - - Achten Sie darauf, dass Sie sich den Indexierer notieren, denn Sie müssen ihn wiederfinden, wenn Sie etwas abheben wollen. 5. Wählen Sie die Option „Delegation aufheben“, indem Sie auf die drei Punkte neben dem Indexierer auf der rechten Seite klicken (siehe Abbildung unten): @@ -37,11 +35,9 @@ Erfahren Sie, wie Sie Ihre delegierten Token über [Graph Explorer] (https://the ### Schritt für Schritt 1. Finden Sie Ihre Delegationstransaktion auf Arbiscan. - - Hier ist eine [Datenbeispiel-Transaktion auf Arbiscan](https://arbiscan.io/tx/0xcf2110eac897099f821064445041031efb32786392bdbe7544a4cb7a6b2e4f9a) 2. Navigieren Sie zu „Transaktionsaktion“, wo Sie den Staking-Verlängerungsvertrag finden können: - - [Dies ist der Staking-Verlängerungsvertrag für das oben genannte Datenbeispiel](https://arbiscan.io/address/0x00669A4CF01450B64E8A2A20E9b1FCB71E61eF03) 3. Klicken Sie dann auf „Vertrag“. ![Registerkarte „Vertrag“ auf Arbiscan, zwischen NFT-Transfers und Ereignissen](/img/arbiscan-contract.png) @@ -59,7 +55,6 @@ Erfahren Sie, wie Sie Ihre delegierten Token über [Graph Explorer] (https://the 9. Wenn Sie nicht wissen, wie viele Token Sie delegiert haben, können Sie `getDelegation` auf der Registerkarte „Benutzerdefiniertes Lesen“ aufrufen. Sie müssen Ihre Adresse (Adresse des Delegators) und die Adresse des Indexirers, an den Sie delegiert haben, einfügen, wie im folgenden Screenshot gezeigt ist: ![Beide Adressen benötigt](/img/get-delegate.png) - - Sie erhalten dann drei Zahlen. Die erste Zahl ist der Betrag, den Sie unstaken (abheben) können. 10. Nachdem Sie `unstake` aufgerufen haben, können Sie nach ca. 28 Epochen (28 Tagen) durch Aufruf der Funktion `withdraw` abheben. diff --git a/website/src/pages/de/subgraphs/best-practices/grafting-hotfix.mdx b/website/src/pages/de/subgraphs/best-practices/grafting-hotfix.mdx index bfff7009381b..c81bc94cfd74 100644 --- a/website/src/pages/de/subgraphs/best-practices/grafting-hotfix.mdx +++ b/website/src/pages/de/subgraphs/best-practices/grafting-hotfix.mdx @@ -14,12 +14,10 @@ Diese Funktion ermöglicht die schnelle Bereitstellung von Hotfixes für kritisc ## Vorteile des Graftings für Hotfixes 1. **Schnelle Bereitstellung** - - **Ausfallzeiten minimieren**: Wenn in einem Subgraphen ein kritischer Fehler auftritt und die Indizierung unterbrochen wird, können Sie mit Hilfe vom Grafting sofort eine Lösung bereitstellen, ohne auf die erneute Indizierung zu warten. - **Sofortige Wiederherstellung**: Der neue Subgraph geht vom letzten indizierten Block aus und gewährleistet, dass die Datendienste nicht unterbrochen werden. 2. **Datenaufbewahrung** - - **Wiederverwendung historischer Daten**: Beim Grafting werden die vorhandenen Daten aus dem Basis-Subgraphen kopiert, so dass Sie keine wertvollen historischen Datensätze verlieren. - **Konsistenz**: Bewahrt die Datenkontinuität, was für Anwendungen, die auf konsistente historische Daten angewiesen sind, von entscheidender Bedeutung ist. @@ -30,19 +28,16 @@ Diese Funktion ermöglicht die schnelle Bereitstellung von Hotfixes für kritisc ## Best Practices bei der Verwendung von Grafting für Hotfixes 1. **Erster Einsatz ohne Grafting** - - **Starten Sie sauber**: Setzen Sie Ihren ersten Subgraphen immer ohne Grafting ein, um sicherzustellen, dass er stabil ist und wie erwartet funktioniert. - **Testen Sie gründlich**: Überprüfen Sie die Leistung des Subgraphen, um den Bedarf an zukünftigen Hotfixes zu minimieren. 2. **Implementierung des Hotfix mit Grafting** - - **Identifizieren Sie das Problem**: Wenn ein kritischer Fehler auftritt, ermitteln Sie die Blocknummer des letzten erfolgreich indizierten Ereignisses. - **Erstellen Sie einen neuen Subgraphen**: Entwickeln Sie einen neuen Subgraphen, der den Hotfix enthält. - **Konfigurieren Sie Grafting**: Verwenden Sie Grafting, um Daten bis zur identifizierten Blocknummer aus dem ausgefallenen Subgraphen zu kopieren. - **Stellen Sie schnell bereit**: Veröffentlichen Sie den grafted Subgrafen, um den Dienst so schnell wie möglich wiederherzustellen. 3. **Post-Hotfix-Aktionen** - - **Überwachen Sie die Leistung**: Stellen Sie sicher, dass der übertragene Subgraph korrekt indiziert wird und der Hotfix das Problem behebt. - **Veröffentlichen Sie ohne Grafting erneut**: Sobald der Subgraph stabil ist, können Sie eine neue Version des Subgraphen ohne Grafting für die langfristige Wartung bereitstellen. > Hinweis: Es wird nicht empfohlen, sich auf unbegrenzte Zeit aufs Grafting zu verlassen, da dies künftige Aktualisierungen und Wartungsarbeiten erschweren kann. @@ -130,7 +125,6 @@ Angenommen, Sie haben einen Subgraphen, der einen Smart Contract verfolgt, der a - **block**: Nummer des Blocks, in dem das Grafting beginnen soll. 3. **Bereitstellungsschritte** - - **Aktualisieren Sie den Code**: Implementieren Sie den Hotfix in Ihre Mapping-Skripte (z. B. handleWithdrawal). - **Passen Sie das Manifest an**: Wie oben gezeigt, aktualisieren Sie die Datei `subgraph.yaml` mit den Grafting-Konfigurationen. - **Stellen Sie den Subgraphen bereit**: diff --git a/website/src/pages/de/subgraphs/developing/creating/install-the-cli.mdx b/website/src/pages/de/subgraphs/developing/creating/install-the-cli.mdx index bb9fe36ade05..9a318145da38 100644 --- a/website/src/pages/de/subgraphs/developing/creating/install-the-cli.mdx +++ b/website/src/pages/de/subgraphs/developing/creating/install-the-cli.mdx @@ -46,7 +46,6 @@ graph init \ ``` - The command tries to retrieve the contract ABI from Etherscan. - - Die Graph CLI stützt sich auf einen öffentlichen RPC-Endpunkt. Gelegentliche Fehler sind zwar zu erwarten, aber durch Wiederholungen lässt sich dieses Problem in der Regel beheben. Bei anhaltenden Fehlern sollten Sie eine lokale ABI verwenden. - If any of the optional arguments are missing, it guides you through an interactive form. @@ -87,7 +86,6 @@ Optionen: The `graph add` command will fetch the ABI from Etherscan (unless an ABI path is specified with the `--abi` option) and creates a new `dataSource`, similar to how the `graph init` command creates a `dataSource` `--from-contract`, updating the schema and mappings accordingly. This allows you to index implementation contracts from their proxy contracts. - The `--merge-entities` option identifies how the developer would like to handle `entity` and `event` name conflicts: - - If `true`: the new `dataSource` should use existing `eventHandlers` & `entities`. - If `false`: a new `entity` & `event` handler should be created with `${dataSourceName}{EventName}`. diff --git a/website/src/pages/de/subgraphs/developing/managing/deleting-a-subgraph.mdx b/website/src/pages/de/subgraphs/developing/managing/deleting-a-subgraph.mdx index e01d84c31aee..7995e9e0e87b 100644 --- a/website/src/pages/de/subgraphs/developing/managing/deleting-a-subgraph.mdx +++ b/website/src/pages/de/subgraphs/developing/managing/deleting-a-subgraph.mdx @@ -17,7 +17,6 @@ Delete your Subgraph using [Subgraph Studio](https://thegraph.com/studio/). ![Delete-subgraph](/img/Delete-subgraph.png) 4. Depending on the Subgraph's status, you will be prompted with various options. - - If the Subgraph is not published, simply click “delete” and confirm. - If the Subgraph is published, you will need to confirm on your wallet before the Subgraph can be deleted from Studio. If a Subgraph is published to multiple networks, such as testnet and mainnet, additional steps may be required. diff --git a/website/src/pages/de/subgraphs/explorer.mdx b/website/src/pages/de/subgraphs/explorer.mdx index 3a386698a7d4..40a226ca149e 100644 --- a/website/src/pages/de/subgraphs/explorer.mdx +++ b/website/src/pages/de/subgraphs/explorer.mdx @@ -26,7 +26,6 @@ Wenn Sie in einen Subgraphen klicken, können Sie Folgendes tun: - Testen Sie Abfragen auf dem Playground und nutzen Sie Netzwerkdetails, um fundierte Entscheidungen zu treffen. - Signalisieren Sie GRT auf Ihrem eigenen Subgraphen oder den Subgraphen anderer, um die Indexierer auf seine Bedeutung und Qualität aufmerksam zu machen. - - Dies ist von entscheidender Bedeutung, da die Signalisierung eines Subgraphen einen Anreiz darstellt, ihn zu indizieren, was bedeutet, dass er schließlich im Netzwerk auftaucht, um Abfragen zu bedienen. ![Explorer Bild 2](/img/Subgraph-Details.png) diff --git a/website/src/pages/de/subgraphs/mcp/claude.mdx b/website/src/pages/de/subgraphs/mcp/claude.mdx index 8b61438d2ab7..027b272cb942 100644 --- a/website/src/pages/de/subgraphs/mcp/claude.mdx +++ b/website/src/pages/de/subgraphs/mcp/claude.mdx @@ -85,7 +85,6 @@ Once you've entered your Gateway API key into your settings, save the file and r 2. **Find the Command Path** After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. - - Navigate to your `subgraph-mcp` directory in terminal - Run `pwd` to get the full path - Combine the output with `/target/release/subgraph-mcp` diff --git a/website/src/pages/de/subgraphs/quick-start.mdx b/website/src/pages/de/subgraphs/quick-start.mdx index 4608dc407ca7..e7339d4be433 100644 --- a/website/src/pages/de/subgraphs/quick-start.mdx +++ b/website/src/pages/de/subgraphs/quick-start.mdx @@ -166,11 +166,9 @@ Wie Sie Ihre Bereitstellung anpassen können, erfahren Sie unter [Veröffentlich #### Hinzufügen von Signalen zu Ihrem Subgraphen 1. Um Indexierer für die Abfrage Ihres Subgraphen zu gewinnen, sollten Sie ihn mit einem GRT-Kurationssignal versehen. - - Diese Maßnahme verbessert die Servicequalität, verringert die Latenz und erhöht die Netzwerkredundanz und -verfügbarkeit für Ihren Subgraphen. 2. Indexer erhalten GRT Rewards auf der Grundlage des signalisierten Betrags, wenn sie für Indexing Rewards in Frage kommen. - - Es wird empfohlen, mindestens 3.000 GRT zu kuratieren, um 3 Indexierer zu gewinnen. Prüfen Sie die Berechtigung zur Belohnung anhand der Nutzung der Subgraph-Funktion und der unterstützten Netzwerke. Um mehr über das Kuratieren zu erfahren, lesen Sie [Kuratieren](/resources/roles/curating/). diff --git a/website/src/pages/en/archived/arbitrum/arbitrum-faq.mdx b/website/src/pages/en/archived/arbitrum/arbitrum-faq.mdx index 437e769c3ec0..9e5d1bdeb8e6 100644 --- a/website/src/pages/en/archived/arbitrum/arbitrum-faq.mdx +++ b/website/src/pages/en/archived/arbitrum/arbitrum-faq.mdx @@ -25,7 +25,6 @@ The Graph’s billing system accepts GRT on Arbitrum, and users will need ETH on Consequently, to pay for queries, you need GRT on Arbitrum. Here are a few different ways to achieve this: - If you already have GRT on Ethereum, you can bridge it to Arbitrum. You can do this via the GRT bridging option provided in Subgraph Studio or by using one of the following bridges: - - [The Arbitrum Bridge](https://bridge.arbitrum.io/?l2ChainId=42161) - [TransferTo](https://transferto.xyz/swap) diff --git a/website/src/pages/en/indexing/overview.mdx b/website/src/pages/en/indexing/overview.mdx index 73d230f58b5a..b508456397c0 100644 --- a/website/src/pages/en/indexing/overview.mdx +++ b/website/src/pages/en/indexing/overview.mdx @@ -680,13 +680,11 @@ graph indexer actions execute approve Note that supported action types for allocation management have different input requirements: - `Allocate` - allocate stake to a specific Subgraph deployment - - required action params: - deploymentID - amount - `Unallocate` - close allocation, freeing up the stake to reallocate elsewhere - - required action params: - allocationID - deploymentID @@ -695,7 +693,6 @@ Note that supported action types for allocation management have different input - force (forces using the provided POI even if it doesn’t match what the graph-node provides) - `Reallocate` - atomically close allocation and open a fresh allocation for the same Subgraph deployment - - required action params: - allocationID - deploymentID diff --git a/website/src/pages/en/indexing/supported-network-requirements.mdx b/website/src/pages/en/indexing/supported-network-requirements.mdx index 3d57daa55709..95c3c52a9658 100644 --- a/website/src/pages/en/indexing/supported-network-requirements.mdx +++ b/website/src/pages/en/indexing/supported-network-requirements.mdx @@ -2,17 +2,19 @@ title: Supported Network Requirements --- +import { Check } from '@edgeandnode/gds/icons' + | Network | Guides | System Requirements | Indexing Rewards | | --- | --- | --- | :-: | -| Arbitrum | [Baremetal Guide](https://docs.infradao.com/archive-nodes-101/arbitrum/baremetal)
    [Docker Guide](https://docs.infradao.com/archive-nodes-101/arbitrum/docker) | 4+ core CPU
    Ubuntu 22.04
    16GB+ RAM
    >= 8 TiB NVMe SSD
    _last updated August 2023_ | ✅ | -| Avalanche | [Docker Guide](https://docs.infradao.com/archive-nodes-101/avalanche/docker) | 4 core / 8 threads CPU
    Ubuntu 22.04
    16GB+ RAM
    >= 5 TiB NVMe SSD
    _last updated August 2023_ | ✅ | -| Base | [Erigon Baremetal Guide](https://docs.infradao.com/archive-nodes-101/base/erigon/baremetal)

    [GETH Baremetal Guide](https://docs.infradao.com/archive-nodes-101/base/geth/baremetal)
    [GETH Docker Guide](https://docs.infradao.com/archive-nodes-101/base/geth/docker) | 8+ core CPU
    Debian 12/Ubuntu 22.04
    16 GB RAM
    >= 4.5TB (NVME preferred)
    _last updated 14th May 2024_ | ✅ | -| Binance | [Erigon Baremetal Guide](https://docs.infradao.com/archive-nodes-101/binance/erigon/baremetal) | 8 core / 16 threads CPU
    Ubuntu 22.04
    >=32 GB RAM
    >= 14 TiB NVMe SSD
    _last updated 22nd June 2024_ | ✅ | -| Celo | [Docker Guide](https://docs.infradao.com/archive-nodes-101/celo/docker) | 4 core / 8 threads CPU
    Ubuntu 22.04
    16GB+ RAM
    >= 2 TiB NVMe SSD
    _last updated August 2023_ | ✅ | -| Ethereum | [Docker Guide](https://docs.infradao.com/archive-nodes-101/ethereum/erigon/docker) | Higher clock speed over core count
    Ubuntu 22.04
    16GB+ RAM
    >=3TB (NVMe recommended)
    _last updated August 2023_ | ✅ | -| Fantom | [Docker Guide](https://docs.infradao.com/archive-nodes-101/fantom/docker) | 4 core / 8 threads CPU
    Ubuntu 22.04
    16GB+ RAM
    >= 13 TiB NVMe SSD
    _last updated August 2023_ | ✅ | -| Gnosis | [Baremetal Guide](https://docs.infradao.com/archive-nodes-101/gnosis/erigon/baremetal) | 6 core / 12 threads CPU
    Ubuntu 22.04
    16GB+ RAM
    >= 3 TiB NVMe SSD
    _last updated August 2023_ | ✅ | -| Linea | [Baremetal Guide](https://docs.infradao.com/archive-nodes-101/linea/baremetal) | 4+ core CPU
    Ubuntu 22.04
    16GB+ RAM
    >= 1 TiB NVMe SSD
    _last updated 2nd April 2024_ | ✅ | -| Optimism | [Erigon Baremetal Guide](https://docs.infradao.com/archive-nodes-101/optimism/erigon/baremetal)

    [GETH Baremetal Guide](https://docs.infradao.com/archive-nodes-101/optimism/geth/baremetal)
    [GETH Docker Guide](https://docs.infradao.com/archive-nodes-101/optimism/geth/docker) | 4 core / 8 threads CPU
    Ubuntu 22.04
    16GB+ RAM
    >= 8 TiB NVMe SSD
    _last updated August 2023_ | ✅ | -| Polygon | [Docker Guide](https://docs.infradao.com/archive-nodes-101/polygon/docker) | 16 core CPU
    Ubuntu 22.04
    32GB+ RAM
    >= 10 TiB NVMe SSD
    _last updated August 2023_ | ✅ | -| Scroll | [Baremetal Guide](https://docs.infradao.com/archive-nodes-101/scroll/baremetal)
    [Docker Guide](https://docs.infradao.com/archive-nodes-101/scroll/docker) | 4 core / 8 threads CPU
    Debian 12
    16GB+ RAM
    >= 1 TiB NVMe SSD
    _last updated 3rd April 2024_ | ✅ | +| Arbitrum | [Baremetal Guide](https://docs.infradao.com/archive-nodes-101/arbitrum/baremetal)
    [Docker Guide](https://docs.infradao.com/archive-nodes-101/arbitrum/docker) | 4+ core CPU
    Ubuntu 22.04
    16GB+ RAM
    >= 8 TiB NVMe SSD
    _last updated August 2023_ | | +| Avalanche | [Docker Guide](https://docs.infradao.com/archive-nodes-101/avalanche/docker) | 4 core / 8 threads CPU
    Ubuntu 22.04
    16GB+ RAM
    >= 5 TiB NVMe SSD
    _last updated August 2023_ | | +| Base | [Erigon Baremetal Guide](https://docs.infradao.com/archive-nodes-101/base/erigon/baremetal)

    [GETH Baremetal Guide](https://docs.infradao.com/archive-nodes-101/base/geth/baremetal)
    [GETH Docker Guide](https://docs.infradao.com/archive-nodes-101/base/geth/docker) | 8+ core CPU
    Debian 12/Ubuntu 22.04
    16 GB RAM
    >= 4.5TB (NVME preferred)
    _last updated 14th May 2024_ | | +| Binance | [Erigon Baremetal Guide](https://docs.infradao.com/archive-nodes-101/binance/erigon/baremetal) | 8 core / 16 threads CPU
    Ubuntu 22.04
    >=32 GB RAM
    >= 14 TiB NVMe SSD
    _last updated 22nd June 2024_ | | +| Celo | [Docker Guide](https://docs.infradao.com/archive-nodes-101/celo/docker) | 4 core / 8 threads CPU
    Ubuntu 22.04
    16GB+ RAM
    >= 2 TiB NVMe SSD
    _last updated August 2023_ | | +| Ethereum | [Docker Guide](https://docs.infradao.com/archive-nodes-101/ethereum/erigon/docker) | Higher clock speed over core count
    Ubuntu 22.04
    16GB+ RAM
    >=3TB (NVMe recommended)
    _last updated August 2023_ | | +| Fantom | [Docker Guide](https://docs.infradao.com/archive-nodes-101/fantom/docker) | 4 core / 8 threads CPU
    Ubuntu 22.04
    16GB+ RAM
    >= 13 TiB NVMe SSD
    _last updated August 2023_ | | +| Gnosis | [Baremetal Guide](https://docs.infradao.com/archive-nodes-101/gnosis/erigon/baremetal) | 6 core / 12 threads CPU
    Ubuntu 22.04
    16GB+ RAM
    >= 3 TiB NVMe SSD
    _last updated August 2023_ | | +| Linea | [Baremetal Guide](https://docs.infradao.com/archive-nodes-101/linea/baremetal) | 4+ core CPU
    Ubuntu 22.04
    16GB+ RAM
    >= 1 TiB NVMe SSD
    _last updated 2nd April 2024_ | | +| Optimism | [Erigon Baremetal Guide](https://docs.infradao.com/archive-nodes-101/optimism/erigon/baremetal)

    [GETH Baremetal Guide](https://docs.infradao.com/archive-nodes-101/optimism/geth/baremetal)
    [GETH Docker Guide](https://docs.infradao.com/archive-nodes-101/optimism/geth/docker) | 4 core / 8 threads CPU
    Ubuntu 22.04
    16GB+ RAM
    >= 8 TiB NVMe SSD
    _last updated August 2023_ | | +| Polygon | [Docker Guide](https://docs.infradao.com/archive-nodes-101/polygon/docker) | 16 core CPU
    Ubuntu 22.04
    32GB+ RAM
    >= 10 TiB NVMe SSD
    _last updated August 2023_ | | +| Scroll | [Baremetal Guide](https://docs.infradao.com/archive-nodes-101/scroll/baremetal)
    [Docker Guide](https://docs.infradao.com/archive-nodes-101/scroll/docker) | 4 core / 8 threads CPU
    Debian 12
    16GB+ RAM
    >= 1 TiB NVMe SSD
    _last updated 3rd April 2024_ | | diff --git a/website/src/pages/en/indexing/tap.mdx b/website/src/pages/en/indexing/tap.mdx index 477534d63201..e9667d498e0f 100644 --- a/website/src/pages/en/indexing/tap.mdx +++ b/website/src/pages/en/indexing/tap.mdx @@ -38,7 +38,6 @@ As long as you run `tap-agent` and `indexer-agent`, everything will be executed 3. `indexer-agent` takes all the last RAVS and sends redeem requests to the blockchain, which will update the value of `redeem_at`. 4. During the `` period, `indexer-agent` monitors if the blockchain has any reorganizations that revert the transaction. - - If it was reverted, the RAV is resent to the blockchain. If it was not reverted, it gets marked as `final`. ## Blockchain Addresses @@ -77,17 +76,14 @@ The required software version can be found [here](https://github.com/graphprotoc ### Steps 1. **Indexer Agent** - - Follow the [same process](https://github.com/graphprotocol/indexer/pkgs/container/indexer-agent#graph-protocol-indexer-components). - Give the new argument `--tap-subgraph-endpoint` to activate the new GraphTally codepaths and enable redeeming of RAVs. 2. **Indexer Service** - - Fully replace your current configuration with the [new Indexer Service rs](https://github.com/graphprotocol/indexer-rs). It's recommend that you use the [container image](https://github.com/orgs/graphprotocol/packages?repo_name=indexer-rs). - Like the older version, you can scale Indexer Service horizontally easily. It is still stateless. 3. **TAP Agent** - - Run _one_ single instance of [TAP Agent](https://github.com/graphprotocol/indexer-rs) at all times. It's recommend that you use the [container image](https://github.com/orgs/graphprotocol/packages?repo_name=indexer-rs). 4. **Configure Indexer Service and TAP Agent** diff --git a/website/src/pages/en/resources/glossary.mdx b/website/src/pages/en/resources/glossary.mdx index 4c5ad55cd0d3..31402db1084a 100644 --- a/website/src/pages/en/resources/glossary.mdx +++ b/website/src/pages/en/resources/glossary.mdx @@ -15,7 +15,6 @@ title: Glossary - **Indexer**: Network participants that run indexing nodes to index data from blockchains and serve GraphQL queries. - **Indexer Revenue Streams**: Indexers are rewarded in GRT with two components: query fee rebates and indexing rewards. - 1. **Query Fee Rebates**: Payments from Subgraph consumers for serving queries on the network. 2. **Indexing Rewards**: The rewards that Indexers receive for indexing Subgraphs. Indexing rewards are generated via new issuance of 3% GRT annually. @@ -43,7 +42,6 @@ title: Glossary - **Epoch**: A unit of time within the network. Currently, one epoch is 6,646 blocks or approximately 1 day. - **Allocation**: An Indexer can allocate their total GRT stake (including Delegators' stake) towards Subgraphs that have been published on The Graph's decentralized network. Allocations can have different statuses: - 1. **Active**: An allocation is considered active when it is created onchain. This is called opening an allocation, and indicates to the network that the Indexer is actively indexing and serving queries for a particular Subgraph. Active allocations accrue indexing rewards proportional to the signal on the Subgraph, and the amount of GRT allocated. 2. **Closed**: An Indexer may claim the accrued indexing rewards on a given Subgraph by submitting a recent, and valid, Proof of Indexing (POI). This is known as closing an allocation. An allocation must have been open for a minimum of one epoch before it can be closed. The maximum allocation period is 28 epochs. If an Indexer leaves an allocation open beyond 28 epochs, it is known as a stale allocation. When an allocation is in the **Closed** state, a Fisherman can still open a dispute to challenge an Indexer for serving false data. diff --git a/website/src/pages/en/resources/roles/delegating/undelegating.mdx b/website/src/pages/en/resources/roles/delegating/undelegating.mdx index 3d1e67372cec..a698ef23575f 100644 --- a/website/src/pages/en/resources/roles/delegating/undelegating.mdx +++ b/website/src/pages/en/resources/roles/delegating/undelegating.mdx @@ -42,7 +42,6 @@ Learn how to withdraw your delegated tokens through [Graph Explorer](https://the 9. If you don't know how many tokens you delegated, you can call `getDelegation` on the Read Custom tab. You will need to paste your address (delegator address) and the address of the Indexer that you delegated to, as shown in the following screenshot: ![Both of the addresses needed](/img/get-delegate.png) - - This will return three numbers. The first number is the amount you can unstake. 10. After you have called `unstake`, you can withdraw after approximately 28 epochs (28 days) by calling the `withdraw` function. diff --git a/website/src/pages/en/subgraphs/best-practices/grafting-hotfix.mdx b/website/src/pages/en/subgraphs/best-practices/grafting-hotfix.mdx index ae1ef6e764b6..bb5f1fdbdb18 100644 --- a/website/src/pages/en/subgraphs/best-practices/grafting-hotfix.mdx +++ b/website/src/pages/en/subgraphs/best-practices/grafting-hotfix.mdx @@ -14,12 +14,10 @@ This feature enables quick deployment of hotfixes for critical issues, eliminati ## Benefits of Grafting for Hotfixes 1. **Rapid Deployment** - - **Minimize Downtime**: When a Subgraph encounters a critical error and stops indexing, grafting enables you to deploy a fix immediately without waiting for re-indexing. - **Immediate Recovery**: The new Subgraph continues from the last indexed block, ensuring that data services remain uninterrupted. 2. **Data Preservation** - - **Reuse Historical Data**: Grafting copies the existing data from the base Subgraph, so you don’t lose valuable historical records. - **Consistency**: Maintains data continuity, which is crucial for applications relying on consistent historical data. @@ -30,19 +28,16 @@ This feature enables quick deployment of hotfixes for critical issues, eliminati ## Best Practices When Using Grafting for Hotfixes 1. **Initial Deployment Without Grafting** - - **Start Clean**: Always deploy your initial Subgraph without grafting to ensure that it’s stable and functions as expected. - **Test Thoroughly**: Validate the Subgraph’s performance to minimize the need for future hotfixes. 2. **Implementing the Hotfix with Grafting** - - **Identify the Issue**: When a critical error occurs, determine the block number of the last successfully indexed event. - **Create a New Subgraph**: Develop a new Subgraph that includes the hotfix. - **Configure Grafting**: Use grafting to copy data up to the identified block number from the failed Subgraph. - **Deploy Quickly**: Publish the grafted Subgraph to restore service as soon as possible. 3. **Post-Hotfix Actions** - - **Monitor Performance**: Ensure the grafted Subgraph is indexing correctly and the hotfix resolves the issue. - **Republish Without Grafting**: Once stable, deploy a new version of the Subgraph without grafting for long-term maintenance. > Note: Relying on grafting indefinitely is not recommended as it can complicate future updates and maintenance. @@ -130,7 +125,6 @@ Suppose you have a Subgraph tracking a smart contract that has stopped indexing - **block**: Block number where grafting should begin. 3. **Deployment Steps** - - **Update the Code**: Implement the hotfix in your mapping scripts (e.g., handleWithdrawal). - **Adjust the Manifest**: As shown above, update the `subgraph.yaml` with grafting configurations. - **Deploy the Subgraph**: diff --git a/website/src/pages/en/subgraphs/developing/creating/install-the-cli.mdx b/website/src/pages/en/subgraphs/developing/creating/install-the-cli.mdx index c9d6966ef5fe..904aa6cd172b 100644 --- a/website/src/pages/en/subgraphs/developing/creating/install-the-cli.mdx +++ b/website/src/pages/en/subgraphs/developing/creating/install-the-cli.mdx @@ -46,7 +46,6 @@ graph init \ ``` - The command tries to retrieve the contract ABI from Etherscan. - - The Graph CLI relies on a public RPC endpoint. While occasional failures are expected, retries typically resolve this issue. If failures persist, consider using a local ABI. - If any of the optional arguments are missing, it guides you through an interactive form. @@ -87,7 +86,6 @@ Options: The `graph add` command will fetch the ABI from Etherscan (unless an ABI path is specified with the `--abi` option) and creates a new `dataSource`, similar to how the `graph init` command creates a `dataSource` `--from-contract`, updating the schema and mappings accordingly. This allows you to index implementation contracts from their proxy contracts. - The `--merge-entities` option identifies how the developer would like to handle `entity` and `event` name conflicts: - - If `true`: the new `dataSource` should use existing `eventHandlers` & `entities`. - If `false`: a new `entity` & `event` handler should be created with `${dataSourceName}{EventName}`. diff --git a/website/src/pages/en/subgraphs/developing/managing/deleting-a-subgraph.mdx b/website/src/pages/en/subgraphs/developing/managing/deleting-a-subgraph.mdx index 2d71b35a5d86..b06ef48c83a5 100644 --- a/website/src/pages/en/subgraphs/developing/managing/deleting-a-subgraph.mdx +++ b/website/src/pages/en/subgraphs/developing/managing/deleting-a-subgraph.mdx @@ -15,7 +15,6 @@ Delete your Subgraph using [Subgraph Studio](https://thegraph.com/studio/). ![Delete-subgraph](/img/Delete-subgraph.png) 4. Depending on the Subgraph's status, you will be prompted with various options. - - If the Subgraph is not published, simply click “delete” and confirm. - If the Subgraph is published, you will need to confirm on your wallet before the Subgraph can be deleted from Studio. If a Subgraph is published to multiple networks, such as testnet and mainnet, additional steps may be required. diff --git a/website/src/pages/en/subgraphs/mcp/claude.mdx b/website/src/pages/en/subgraphs/mcp/claude.mdx index 8b61438d2ab7..027b272cb942 100644 --- a/website/src/pages/en/subgraphs/mcp/claude.mdx +++ b/website/src/pages/en/subgraphs/mcp/claude.mdx @@ -85,7 +85,6 @@ Once you've entered your Gateway API key into your settings, save the file and r 2. **Find the Command Path** After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. - - Navigate to your `subgraph-mcp` directory in terminal - Run `pwd` to get the full path - Combine the output with `/target/release/subgraph-mcp` diff --git a/website/src/pages/en/token-api/quick-start.mdx b/website/src/pages/en/token-api/quick-start.mdx index d43d2b5d2d86..3906d1776a41 100644 --- a/website/src/pages/en/token-api/quick-start.mdx +++ b/website/src/pages/en/token-api/quick-start.mdx @@ -3,6 +3,8 @@ title: Token API Quick Start sidebarTitle: Quick Start --- +import { Check } from '@edgeandnode/gds/icons' + ![The Graph Token API Quick Start banner](/img/token-api-quickstart-banner.jpg) > [!CAUTION] This product is currently in Beta and under active development. If you have any feedback, please reach out to us on [Discord](https://discord.gg/graphprotocol). @@ -66,16 +68,16 @@ Make sure to replace `` with the JWT Token generated from your API key. ## Chain and Feature Support -| Network | evm-tokens | evm-uniswaps | evm-nft-tokens | -| ---------------- | :--------: | :----------: | :------------: | -| Ethereum Mainnet | ✅ | ✅ | ✅ | -| BSC | ✅\* | ✅ | ✅ | -| Base | ✅ | ✅ | ✅ | -| Unichain | ✅ | ✅ | ✅ | -| Arbitrum-One | ✅\* | ✅\* | ✅\* | -| Optimism | ✅ | ✅ | ✅ | -| Polygon | ✅ | ✅ | ✅ | -| Avalanche | ✅ | ✅ | ✅ | +| Network | evm-tokens | evm-uniswaps | evm-nft-tokens | +| ---------------- | :-------------------------: | :-------------------------: | :-------------------------: | +| Ethereum Mainnet | | | | +| BSC | | | | +| Base | | | | +| Unichain | | | | +| Arbitrum-One | \* | \* | \* | +| Optimism | | | | +| Polygon | | | | +| Avalanche | | | | \*Some chains are still in the process of syncing. You may encounter `bad_database_response` errors or incorrect response values until data is fully synced. diff --git a/website/src/pages/es/archived/arbitrum/arbitrum-faq.mdx b/website/src/pages/es/archived/arbitrum/arbitrum-faq.mdx index 2b7fe7284fc8..59da196eef2b 100644 --- a/website/src/pages/es/archived/arbitrum/arbitrum-faq.mdx +++ b/website/src/pages/es/archived/arbitrum/arbitrum-faq.mdx @@ -25,7 +25,6 @@ The Graph’s billing system accepts GRT on Arbitrum, and users will need ETH on Consequently, to pay for queries, you need GRT on Arbitrum. Here are a few different ways to achieve this: - If you already have GRT on Ethereum, you can bridge it to Arbitrum. You can do this via the GRT bridging option provided in Subgraph Studio or by using one of the following bridges: - - [The Arbitrum Bridge](https://bridge.arbitrum.io/?l2ChainId=42161) - [TransferTo](https://transferto.xyz/swap) diff --git a/website/src/pages/es/indexing/overview.mdx b/website/src/pages/es/indexing/overview.mdx index 1eacc8b17e82..ee6ee5add77d 100644 --- a/website/src/pages/es/indexing/overview.mdx +++ b/website/src/pages/es/indexing/overview.mdx @@ -680,13 +680,11 @@ graph indexer actions execute approve Note that supported action types for allocation management have different input requirements: - `Allocate` - allocate stake to a specific Subgraph deployment - - required action params: - deploymentID - amount - `Unallocate` - close allocation, freeing up the stake to reallocate elsewhere - - required action params: - allocationID - deploymentID @@ -695,7 +693,6 @@ Note that supported action types for allocation management have different input - force (forces using the provided POI even if it doesn’t match what the graph-node provides) - `Reallocate` - atomically close allocation and open a fresh allocation for the same Subgraph deployment - - required action params: - allocationID - deploymentID diff --git a/website/src/pages/es/indexing/tap.mdx b/website/src/pages/es/indexing/tap.mdx index 024347d695c4..eee958873bb2 100644 --- a/website/src/pages/es/indexing/tap.mdx +++ b/website/src/pages/es/indexing/tap.mdx @@ -38,7 +38,6 @@ As long as you run `tap-agent` and `indexer-agent`, everything will be executed 3. `indexer-agent` takes all the last RAVS and sends redeem requests to the blockchain, which will update the value of `redeem_at`. 4. During the `` period, `indexer-agent` monitors if the blockchain has any reorganizations that revert the transaction. - - If it was reverted, the RAV is resent to the blockchain. If it was not reverted, it gets marked as `final`. ## Blockchain Addresses @@ -77,17 +76,14 @@ The required software version can be found [here](https://github.com/graphprotoc ### Steps 1. **Indexer Agent** - - Follow the [same process](https://github.com/graphprotocol/indexer/pkgs/container/indexer-agent#graph-protocol-indexer-components). - Give the new argument `--tap-subgraph-endpoint` to activate the new GraphTally codepaths and enable redeeming of RAVs. 2. **Indexer Service** - - Fully replace your current configuration with the [new Indexer Service rs](https://github.com/graphprotocol/indexer-rs). It's recommend that you use the [container image](https://github.com/orgs/graphprotocol/packages?repo_name=indexer-rs). - Like the older version, you can scale Indexer Service horizontally easily. It is still stateless. 3. **TAP Agent** - - Run _one_ single instance of [TAP Agent](https://github.com/graphprotocol/indexer-rs) at all times. It's recommend that you use the [container image](https://github.com/orgs/graphprotocol/packages?repo_name=indexer-rs). 4. **Configure Indexer Service and TAP Agent** diff --git a/website/src/pages/es/resources/glossary.mdx b/website/src/pages/es/resources/glossary.mdx index dfbe07decedf..6154aefde27b 100644 --- a/website/src/pages/es/resources/glossary.mdx +++ b/website/src/pages/es/resources/glossary.mdx @@ -15,7 +15,6 @@ title: Glosario - **Indexer**: Network participants that run indexing nodes to index data from blockchains and serve GraphQL queries. - **Indexer Revenue Streams**: Indexers are rewarded in GRT with two components: query fee rebates and indexing rewards. - 1. **Query Fee Rebates**: Payments from Subgraph consumers for serving queries on the network. 2. **Indexing Rewards**: The rewards that Indexers receive for indexing Subgraphs. Indexing rewards are generated via new issuance of 3% GRT annually. @@ -43,7 +42,6 @@ title: Glosario - **Epoch**: A unit of time within the network. Currently, one epoch is 6,646 blocks or approximately 1 day. - **Allocation**: An Indexer can allocate their total GRT stake (including Delegators' stake) towards Subgraphs that have been published on The Graph's decentralized network. Allocations can have different statuses: - 1. **Active**: An allocation is considered active when it is created onchain. This is called opening an allocation, and indicates to the network that the Indexer is actively indexing and serving queries for a particular Subgraph. Active allocations accrue indexing rewards proportional to the signal on the Subgraph, and the amount of GRT allocated. 2. **Closed**: An Indexer may claim the accrued indexing rewards on a given Subgraph by submitting a recent, and valid, Proof of Indexing (POI). This is known as closing an allocation. An allocation must have been open for a minimum of one epoch before it can be closed. The maximum allocation period is 28 epochs. If an Indexer leaves an allocation open beyond 28 epochs, it is known as a stale allocation. When an allocation is in the **Closed** state, a Fisherman can still open a dispute to challenge an Indexer for serving false data. diff --git a/website/src/pages/es/resources/roles/delegating/undelegating.mdx b/website/src/pages/es/resources/roles/delegating/undelegating.mdx index 792d140be411..8a0584e7e77f 100644 --- a/website/src/pages/es/resources/roles/delegating/undelegating.mdx +++ b/website/src/pages/es/resources/roles/delegating/undelegating.mdx @@ -13,13 +13,11 @@ Learn how to withdraw your delegated tokens through [Graph Explorer](https://the 1. Visit [Graph Explorer](https://thegraph.com/explorer). Please make sure you're on Explorer and **not** Subgraph Studio. 2. Click on your profile. You can find it on the top right corner of the page. - - Make sure that your wallet is connected. If it's not connected, you will see the "connect" button instead. 3. Once you're in your profile, click on the Delegating tab. In the Delegating tab, you can view the list of Indexers you have delegated to. 4. Click on the Indexer from which you wish to withdraw your tokens. - - Make sure to note the specific Indexer, as you will need to find them again to withdraw. 5. Select the "Undelegate" option by clicking on the three dots next to the Indexer on the right side, see image below: @@ -37,11 +35,9 @@ Learn how to withdraw your delegated tokens through [Graph Explorer](https://the ### Step-by-Step 1. Find your delegation transaction on Arbiscan. - - Here's an [example transaction on Arbiscan](https://arbiscan.io/tx/0xcf2110eac897099f821064445041031efb32786392bdbe7544a4cb7a6b2e4f9a) 2. Navigate to "Transaction Action" where you can find the staking extension contract: - - [This is the staking extension contract for the example listed above](https://arbiscan.io/address/0x00669A4CF01450B64E8A2A20E9b1FCB71E61eF03) 3. Then click on "Contract". ![Contract tab on Arbiscan, between NFT Transfers and Events](/img/arbiscan-contract.png) @@ -59,7 +55,6 @@ Learn how to withdraw your delegated tokens through [Graph Explorer](https://the 9. If you don't know how many tokens you delegated, you can call `getDelegation` on the Read Custom tab. You will need to paste your address (delegator address) and the address of the Indexer that you delegated to, as shown in the following screenshot: ![Both of the addresses needed](/img/get-delegate.png) - - This will return three numbers. The first number is the amount you can unstake. 10. After you have called `unstake`, you can withdraw after approximately 28 epochs (28 days) by calling the `withdraw` function. diff --git a/website/src/pages/es/subgraphs/best-practices/grafting-hotfix.mdx b/website/src/pages/es/subgraphs/best-practices/grafting-hotfix.mdx index 39750e51189d..735c232aef34 100644 --- a/website/src/pages/es/subgraphs/best-practices/grafting-hotfix.mdx +++ b/website/src/pages/es/subgraphs/best-practices/grafting-hotfix.mdx @@ -14,12 +14,10 @@ This feature enables quick deployment of hotfixes for critical issues, eliminati ## Benefits of Grafting for Hotfixes 1. **Rapid Deployment** - - **Minimize Downtime**: When a Subgraph encounters a critical error and stops indexing, grafting enables you to deploy a fix immediately without waiting for re-indexing. - **Immediate Recovery**: The new Subgraph continues from the last indexed block, ensuring that data services remain uninterrupted. 2. **Data Preservation** - - **Reuse Historical Data**: Grafting copies the existing data from the base Subgraph, so you don’t lose valuable historical records. - **Consistency**: Maintains data continuity, which is crucial for applications relying on consistent historical data. @@ -30,19 +28,16 @@ This feature enables quick deployment of hotfixes for critical issues, eliminati ## Best Practices When Using Grafting for Hotfixes 1. **Initial Deployment Without Grafting** - - **Start Clean**: Always deploy your initial Subgraph without grafting to ensure that it’s stable and functions as expected. - **Test Thoroughly**: Validate the Subgraph’s performance to minimize the need for future hotfixes. 2. **Implementing the Hotfix with Grafting** - - **Identify the Issue**: When a critical error occurs, determine the block number of the last successfully indexed event. - **Create a New Subgraph**: Develop a new Subgraph that includes the hotfix. - **Configure Grafting**: Use grafting to copy data up to the identified block number from the failed Subgraph. - **Deploy Quickly**: Publish the grafted Subgraph to restore service as soon as possible. 3. **Post-Hotfix Actions** - - **Monitor Performance**: Ensure the grafted Subgraph is indexing correctly and the hotfix resolves the issue. - **Republish Without Grafting**: Once stable, deploy a new version of the Subgraph without grafting for long-term maintenance. > Note: Relying on grafting indefinitely is not recommended as it can complicate future updates and maintenance. @@ -130,7 +125,6 @@ Suppose you have a Subgraph tracking a smart contract that has stopped indexing - **block**: Block number where grafting should begin. 3. **Deployment Steps** - - **Update the Code**: Implement the hotfix in your mapping scripts (e.g., handleWithdrawal). - **Adjust the Manifest**: As shown above, update the `subgraph.yaml` with grafting configurations. - **Deploy the Subgraph**: diff --git a/website/src/pages/es/subgraphs/developing/creating/install-the-cli.mdx b/website/src/pages/es/subgraphs/developing/creating/install-the-cli.mdx index d968a59b17ff..930b0aff19c1 100644 --- a/website/src/pages/es/subgraphs/developing/creating/install-the-cli.mdx +++ b/website/src/pages/es/subgraphs/developing/creating/install-the-cli.mdx @@ -46,7 +46,6 @@ graph init \ ``` - The command tries to retrieve the contract ABI from Etherscan. - - The Graph CLI relies on a public RPC endpoint. While occasional failures are expected, retries typically resolve this issue. If failures persist, consider using a local ABI. - If any of the optional arguments are missing, it guides you through an interactive form. @@ -87,7 +86,6 @@ Options: The `graph add` command will fetch the ABI from Etherscan (unless an ABI path is specified with the `--abi` option) and creates a new `dataSource`, similar to how the `graph init` command creates a `dataSource` `--from-contract`, updating the schema and mappings accordingly. This allows you to index implementation contracts from their proxy contracts. - The `--merge-entities` option identifies how the developer would like to handle `entity` and `event` name conflicts: - - If `true`: the new `dataSource` should use existing `eventHandlers` & `entities`. - If `false`: a new `entity` & `event` handler should be created with `${dataSourceName}{EventName}`. diff --git a/website/src/pages/es/subgraphs/developing/managing/deleting-a-subgraph.mdx b/website/src/pages/es/subgraphs/developing/managing/deleting-a-subgraph.mdx index b8c2330ca49d..f842a0e04ac4 100644 --- a/website/src/pages/es/subgraphs/developing/managing/deleting-a-subgraph.mdx +++ b/website/src/pages/es/subgraphs/developing/managing/deleting-a-subgraph.mdx @@ -17,7 +17,6 @@ Delete your Subgraph using [Subgraph Studio](https://thegraph.com/studio/). ![Delete-subgraph](/img/Delete-subgraph.png) 4. Depending on the Subgraph's status, you will be prompted with various options. - - If the Subgraph is not published, simply click “delete” and confirm. - If the Subgraph is published, you will need to confirm on your wallet before the Subgraph can be deleted from Studio. If a Subgraph is published to multiple networks, such as testnet and mainnet, additional steps may be required. diff --git a/website/src/pages/es/subgraphs/explorer.mdx b/website/src/pages/es/subgraphs/explorer.mdx index e7d1980ac05d..7eb509c3f314 100644 --- a/website/src/pages/es/subgraphs/explorer.mdx +++ b/website/src/pages/es/subgraphs/explorer.mdx @@ -26,7 +26,6 @@ When you click into a Subgraph, you will be able to do the following: - Test queries in the playground and be able to leverage network details to make informed decisions. - Signal GRT on your own Subgraph or the Subgraphs of others to make indexers aware of its importance and quality. - - This is critical because signaling on a Subgraph incentivizes it to be indexed, meaning it’ll eventually surface on the network to serve queries. ![Explorer Image 2](/img/Subgraph-Details.png) diff --git a/website/src/pages/es/subgraphs/mcp/claude.mdx b/website/src/pages/es/subgraphs/mcp/claude.mdx index 8b61438d2ab7..027b272cb942 100644 --- a/website/src/pages/es/subgraphs/mcp/claude.mdx +++ b/website/src/pages/es/subgraphs/mcp/claude.mdx @@ -85,7 +85,6 @@ Once you've entered your Gateway API key into your settings, save the file and r 2. **Find the Command Path** After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. - - Navigate to your `subgraph-mcp` directory in terminal - Run `pwd` to get the full path - Combine the output with `/target/release/subgraph-mcp` diff --git a/website/src/pages/es/subgraphs/quick-start.mdx b/website/src/pages/es/subgraphs/quick-start.mdx index 57d13e479ba2..e9eb1815168d 100644 --- a/website/src/pages/es/subgraphs/quick-start.mdx +++ b/website/src/pages/es/subgraphs/quick-start.mdx @@ -166,11 +166,9 @@ To customize your deployment, see [Publishing a Subgraph](/subgraphs/developing/ #### Adding signal to your Subgraph 1. To attract Indexers to query your Subgraph, you should add GRT curation signal to it. - - This action improves quality of service, reduces latency, and enhances network redundancy and availability for your Subgraph. 2. If eligible for indexing rewards, Indexers receive GRT rewards based on the signaled amount. - - It’s recommended to curate at least 3,000 GRT to attract 3 Indexers. Check reward eligibility based on Subgraph feature usage and supported networks. To learn more about curation, read [Curating](/resources/roles/curating/). diff --git a/website/src/pages/fr/archived/arbitrum/arbitrum-faq.mdx b/website/src/pages/fr/archived/arbitrum/arbitrum-faq.mdx index 3aeb3de89d39..de9c9096ebbd 100644 --- a/website/src/pages/fr/archived/arbitrum/arbitrum-faq.mdx +++ b/website/src/pages/fr/archived/arbitrum/arbitrum-faq.mdx @@ -25,7 +25,6 @@ Le système de facturation de The Graph accepte le GRT sur Arbitrum, et les util Par conséquent, pour payer les requêtes, vous avez besoin de GRT sur Arbitrum. Voici quelques façons d'y parvenir : - Si vous avez déjà des GRT sur Ethereum, vous pouvez les transférer vers Arbitrum. Vous pouvez le faire via l'option de transfert de GRT fournie dans Subgraph Studio ou en utilisant l'un des ponts suivants : - - [Le Bridge Arbitrum](https://bridge.arbitrum.io/?l2ChainId=42161) - [TransferTo](https://transferto.xyz/swap) diff --git a/website/src/pages/fr/indexing/overview.mdx b/website/src/pages/fr/indexing/overview.mdx index b95a482012b1..d59c6ff4df94 100644 --- a/website/src/pages/fr/indexing/overview.mdx +++ b/website/src/pages/fr/indexing/overview.mdx @@ -680,13 +680,11 @@ graph indexer actions execute approve Notez que les types d'action pris en charge pour la gestion de l'allocation ont des exigences différentes en matière de données d'entrée : - `Allocate` - allocate stake to a specific Subgraph deployment - - paramètres d'action requis : - deploymentID - amount - `Unallocate` - ferme l'allocation, libérant le staking pour le réallouer ailleurs - - paramètres d'action requis : - allocationID - deploymentID @@ -695,7 +693,6 @@ Notez que les types d'action pris en charge pour la gestion de l'allocation ont - force (force à utiliser le POI fourni même s'il ne correspond pas à ce que graph-node fournit) - `Reallocate` - atomically close allocation and open a fresh allocation for the same Subgraph deployment - - paramètres d'action requis : - allocationID - deploymentID diff --git a/website/src/pages/fr/indexing/tap.mdx b/website/src/pages/fr/indexing/tap.mdx index 68a0b79a2e6f..032a0741d2d4 100644 --- a/website/src/pages/fr/indexing/tap.mdx +++ b/website/src/pages/fr/indexing/tap.mdx @@ -38,7 +38,6 @@ Tant que vous exécutez `tap-agent` et `indexer-agent`, tout sera exécuté auto 3. `indexer-agent` récupère tous les derniers RAVS et envoie des demandes de rachat à la blockchain, qui mettra à jour la valeur de `redeem_at`. 4. Pendant la période ``, `indexer-agent` surveille si la blockchain a des réorganisations qui annulent la transaction. - - Si elle a été annulée, la RAV est renvoyée à la blockchain. S'il n'a pas été modifié, il est marqué comme `final`. ## Adresses sur la blockchain @@ -77,17 +76,14 @@ La version requise du logiciel peut être trouvée [ici](https://github.com/grap ### Étapes 1. **Agent d'indexeur** - - Suivez le [même processus](https://github.com/graphprotocol/indexer/pkgs/container/indexer-agent#graph-protocol-indexer-components). - Give the new argument `--tap-subgraph-endpoint` to activate the new GraphTally codepaths and enable redeeming of RAVs. 2. **Indexer Service** - - Remplacez complètement votre configuration actuelle par le [nouveau service d'Indexeur rs](https://github.com/graphprotocol/indexer-rs). Il est recommandé d'utiliser l'[image du conteneur](https://github.com/orgs/graphprotocol/packages?repo_name=indexer-rs). - Comme dans la version précédente, vous pouvez facilement faire monter Indexer Service en charge (scaling horizontal) car il reste sans état (stateless). 3. **TAP Agent** - - Exécutez _une_ seule instance de [Agent TAP](https://github.com/graphprotocol/indexer-rs) à tout moment. Il est recommandé d'utiliser l'[image de conteneur](https://github.com/orgs/graphprotocol/packages?repo_name=indexer-rs). 4. **Configuration de l’Indexer Service et du TAP Agent** diff --git a/website/src/pages/fr/resources/glossary.mdx b/website/src/pages/fr/resources/glossary.mdx index f874e54e73cd..c81af3040b9b 100644 --- a/website/src/pages/fr/resources/glossary.mdx +++ b/website/src/pages/fr/resources/glossary.mdx @@ -15,7 +15,6 @@ title: Glossaire - **Indexeur** : Participants au réseau qui gèrent des nœuds d'indexation pour indexer les données des blockchains et répondre aux requêtes GraphQL. - **Flux de revenus pour les Indexeurs** : Les Indexeurs sont récompensés en GRT par deux éléments : les remises sur les frais de requête et les récompenses pour l'indexation. - 1. **Query Fee Rebates**: Payments from Subgraph consumers for serving queries on the network. 2. **Indexing Rewards**: The rewards that Indexers receive for indexing Subgraphs. Indexing rewards are generated via new issuance of 3% GRT annually. @@ -43,7 +42,6 @@ title: Glossaire - **Epoque** : Unité de temps au sein du réseau. Actuellement, une époque correspond à 6 646 blocs, soit environ 1 jour. - **Allocation**: An Indexer can allocate their total GRT stake (including Delegators' stake) towards Subgraphs that have been published on The Graph's decentralized network. Allocations can have different statuses: - 1. **Active**: An allocation is considered active when it is created onchain. This is called opening an allocation, and indicates to the network that the Indexer is actively indexing and serving queries for a particular Subgraph. Active allocations accrue indexing rewards proportional to the signal on the Subgraph, and the amount of GRT allocated. 2. **Closed**: An Indexer may claim the accrued indexing rewards on a given Subgraph by submitting a recent, and valid, Proof of Indexing (POI). This is known as closing an allocation. An allocation must have been open for a minimum of one epoch before it can be closed. The maximum allocation period is 28 epochs. If an Indexer leaves an allocation open beyond 28 epochs, it is known as a stale allocation. When an allocation is in the **Closed** state, a Fisherman can still open a dispute to challenge an Indexer for serving false data. diff --git a/website/src/pages/fr/resources/roles/delegating/undelegating.mdx b/website/src/pages/fr/resources/roles/delegating/undelegating.mdx index e4b61c71142a..35f2636b623d 100644 --- a/website/src/pages/fr/resources/roles/delegating/undelegating.mdx +++ b/website/src/pages/fr/resources/roles/delegating/undelegating.mdx @@ -13,13 +13,11 @@ Learn how to withdraw your delegated tokens through [Graph Explorer](https://the 1. Visit [Graph Explorer](https://thegraph.com/explorer). Please make sure you're on Explorer and **not** Subgraph Studio. 2. Click on your profile. You can find it on the top right corner of the page. - - Make sure that your wallet is connected. If it's not connected, you will see the "connect" button instead. 3. Once you're in your profile, click on the Delegating tab. In the Delegating tab, you can view the list of Indexers you have delegated to. 4. Click on the Indexer from which you wish to withdraw your tokens. - - Make sure to note the specific Indexer, as you will need to find them again to withdraw. 5. Select the "Undelegate" option by clicking on the three dots next to the Indexer on the right side, see image below: @@ -37,11 +35,9 @@ Learn how to withdraw your delegated tokens through [Graph Explorer](https://the ### Étape par Étape 1. Find your delegation transaction on Arbiscan. - - Here's an [example transaction on Arbiscan](https://arbiscan.io/tx/0xcf2110eac897099f821064445041031efb32786392bdbe7544a4cb7a6b2e4f9a) 2. Navigate to "Transaction Action" where you can find the staking extension contract: - - [This is the staking extension contract for the example listed above](https://arbiscan.io/address/0x00669A4CF01450B64E8A2A20E9b1FCB71E61eF03) 3. Then click on "Contract". ![Contract tab on Arbiscan, between NFT Transfers and Events](/img/arbiscan-contract.png) @@ -59,7 +55,6 @@ Learn how to withdraw your delegated tokens through [Graph Explorer](https://the 9. If you don't know how many tokens you delegated, you can call `getDelegation` on the Read Custom tab. You will need to paste your address (delegator address) and the address of the Indexer that you delegated to, as shown in the following screenshot: ![Both of the addresses needed](/img/get-delegate.png) - - This will return three numbers. The first number is the amount you can unstake. 10. After you have called `unstake`, you can withdraw after approximately 28 epochs (28 days) by calling the `withdraw` function. diff --git a/website/src/pages/fr/subgraphs/best-practices/grafting-hotfix.mdx b/website/src/pages/fr/subgraphs/best-practices/grafting-hotfix.mdx index e8813f5e8a20..92e5ec21854a 100644 --- a/website/src/pages/fr/subgraphs/best-practices/grafting-hotfix.mdx +++ b/website/src/pages/fr/subgraphs/best-practices/grafting-hotfix.mdx @@ -14,12 +14,10 @@ Cette fonction permet de déployer rapidement des correctifs pour les problèmes ## Avantages du greffage pour les correctifs 1. **Déploiement rapide** - - **Minimiser les temps d'arrêt** : Lorsqu'un Subgraph rencontre une erreur critique et cesse d'être indexé, la greffe vous permet de déployer immédiatement un correctif sans attendre la réindexation. - **Récupération immédiate** : Le nouveau Subgraph continue à partir du dernier bloc indexé, garantissant que les services de données restent ininterrompus. 2. **Préservation des données** - - **Réutilisation des données historiques** : Le greffage copie les données existantes du Subgraph de base, de sorte que vous ne perdez pas de précieux enregistrements historiques. - **Consistance** : Maintient la continuité des données, ce qui est crucial pour les applications qui s'appuient sur des données historiques cohérentes. @@ -30,19 +28,16 @@ Cette fonction permet de déployer rapidement des correctifs pour les problèmes ## Meilleures pratiques lors de l'utilisation du greffage pour les correctifs 1. **Déploiement initial sans greffage** - - **Démarrez proprement** : Déployez toujours votre Subgraph initial sans greffe pour vous assurer qu'il est stable et qu'il fonctionne comme prévu. - **Testez minutieusement** : Validez les performances du Subgraph afin de minimiser les besoins en correctifs futurs. 2. **Mise en œuvre du correctif par greffage** - - **Identifier le problème** : Lorsqu'une erreur critique se produit, déterminez le numéro de bloc du dernier événement indexé avec succès. - **Créer un nouveau Subgraph** : Développer un nouveau Subgraph qui inclut le correctif. - **Configurer la greffe** : Utiliser la greffage pour copier les données jusqu'au numéro de bloc identifié à partir du Subgraph défaillant. - **Déployer rapidement** : Publier le Subgraph greffé pour rétablir le service dès que possible. 3. **Actions post-correctif** - - **Surveillez les performances** : Assurez-vous que le Subgraph greffé est indexé correctement et que le correctif résout le problème. - **Républier sans greffer** : Une fois stable, déployer une nouvelle version du Subgraph sans greffe pour une maintenance à long terme. > Remarque : il n'est pas recommandé de s'appuyer indéfiniment sur le greffage, car cela peut compliquer les mises à jour et la maintenance futures. @@ -130,7 +125,6 @@ Supposons que vous ayez un Subgraph qui suit un contrat intelligent qui a cessé - **bloc** : Numéro du bloc où le greffage doit commencer. 3. **Étapes de déploiement** - - **Mise à jour du code** : Implémentez le correctif dans vos scripts de mappage (par exemple, handleWithdrawal). - **Ajuster le manifeste** : Comme indiqué ci-dessus, mettez à jour le fichier `subgraph.yaml` avec les configurations de greffage. - **Déployer le subgraph** : diff --git a/website/src/pages/fr/subgraphs/developing/creating/install-the-cli.mdx b/website/src/pages/fr/subgraphs/developing/creating/install-the-cli.mdx index eaa6d4601d27..86ad38bd2b22 100644 --- a/website/src/pages/fr/subgraphs/developing/creating/install-the-cli.mdx +++ b/website/src/pages/fr/subgraphs/developing/creating/install-the-cli.mdx @@ -46,7 +46,6 @@ graph init \ ``` - La commande tente de récupérer l'ABI du contrat depuis Etherscan. - - Graph CLI repose sur un endpoint RPC public. Bien que des échecs occasionnels soient attendus, les réessais résolvent généralement ce problème. Si les échecs persistent, envisagez d'utiliser un ABI local. - Si certains arguments optionnels manquent, il vous guide à travers un formulaire interactif. @@ -87,7 +86,6 @@ Options: La commande `graph add` récupère l'ABI depuis Etherscan (à moins qu'un chemin ABI ne soit spécifié avec l'option `--abi`) et crée une nouvelle `dataSource`, de la même manière que la commande `graph init` crée une `dataSource` `--from-contract`, en mettant à jour le schéma et les mappages en conséquence. Cela vous permet d'indexer les contrats d'implémentation à partir de leurs contrats proxy. - L'option `--merge-entities` identifie comment le développeur souhaite gérer les conflits de noms entre `entity` et `event` : - - Si `true` : la nouvelle `dataSource` doit utiliser les `eventHandlers` et `entities` existants. - Si `false` : un nouveau gestionnaire `entity` & `event` doit être créé avec `${dataSourceName}{EventName}`. diff --git a/website/src/pages/fr/subgraphs/developing/managing/deleting-a-subgraph.mdx b/website/src/pages/fr/subgraphs/developing/managing/deleting-a-subgraph.mdx index 480046bd10c8..6779167d2e40 100644 --- a/website/src/pages/fr/subgraphs/developing/managing/deleting-a-subgraph.mdx +++ b/website/src/pages/fr/subgraphs/developing/managing/deleting-a-subgraph.mdx @@ -17,7 +17,6 @@ Supprimez votre Subgraph en utilisant [Subgraph Studio](https://thegraph.com/stu ![Delete-subgraph](/img/Delete-subgraph.png) 4. En fonction de l'état du Subgraph, différentes options vous seront proposées. - - Si le Subgraph n'est pas publié, il suffit de cliquer sur "supprimer" et de confirmer. - Si le Subgraph est publié, vous devrez le confirmer dans votre portefeuille avant de pouvoir le supprimer de Studio. Si un Subgraph est publié sur plusieurs réseaux, tels que testnet et mainnet, des étapes supplémentaires peuvent être nécessaires. diff --git a/website/src/pages/fr/subgraphs/explorer.mdx b/website/src/pages/fr/subgraphs/explorer.mdx index 7a7cf7e972db..658acadb7b49 100644 --- a/website/src/pages/fr/subgraphs/explorer.mdx +++ b/website/src/pages/fr/subgraphs/explorer.mdx @@ -26,7 +26,6 @@ Lorsque vous cliquez sur un subgraph, vous pouvez effectuer les opérations suiv - Tester des requêtes dans le l'environnement de test et utiliser les détails du réseau pour prendre des décisions éclairées. - Signalez des GRT sur votre propre subgraph ou sur les subgraphs d'autres personnes afin de sensibiliser les Indexeurs sur son importance et sa qualité. - - Ce point est essentiel, car le fait de signaler un subgraph incite à être indexé, ce qui signifie qu'il finira par faire surface sur le réseau pour répondre aux requêtes. ![Image 2 de l'Explorer](/img/Subgraph-Details.png) diff --git a/website/src/pages/fr/subgraphs/mcp/claude.mdx b/website/src/pages/fr/subgraphs/mcp/claude.mdx index 8b61438d2ab7..027b272cb942 100644 --- a/website/src/pages/fr/subgraphs/mcp/claude.mdx +++ b/website/src/pages/fr/subgraphs/mcp/claude.mdx @@ -85,7 +85,6 @@ Once you've entered your Gateway API key into your settings, save the file and r 2. **Find the Command Path** After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. - - Navigate to your `subgraph-mcp` directory in terminal - Run `pwd` to get the full path - Combine the output with `/target/release/subgraph-mcp` diff --git a/website/src/pages/fr/subgraphs/quick-start.mdx b/website/src/pages/fr/subgraphs/quick-start.mdx index c227ec40ccc7..a54c5a5359a0 100644 --- a/website/src/pages/fr/subgraphs/quick-start.mdx +++ b/website/src/pages/fr/subgraphs/quick-start.mdx @@ -166,11 +166,9 @@ Pour personnaliser votre déploiement, voir [Publier un subgraph](/subgraphs/dev #### Adding signal to your Subgraph 1. Pour inciter les Indexeurs à interroger votre subgraph, vous devez y ajouter un signal de curation GRT. - - Cette action améliore la qualité de service, réduit la latence et améliore la redondance et la disponibilité du réseau pour votre Subgraph. 2. Si éligibles aux récompenses d'indexation, les Indexeurs reçoivent des récompenses en GRT proportionnelles au montant signalé. - - Il est recommandé de rassembler au moins 3 000 GRT pour attirer 3 Indexeurs. Vérifiez l'éligibilité des récompenses en fonction de l'utilisation des fonctions du subgraph et des réseaux pris en charge. Pour en savoir plus sur la curation, lisez [Curating](/resources/roles/curating/). diff --git a/website/src/pages/hi/archived/arbitrum/arbitrum-faq.mdx b/website/src/pages/hi/archived/arbitrum/arbitrum-faq.mdx index ee970e360d2e..dacdcb82d6a8 100644 --- a/website/src/pages/hi/archived/arbitrum/arbitrum-faq.mdx +++ b/website/src/pages/hi/archived/arbitrum/arbitrum-faq.mdx @@ -25,7 +25,6 @@ The Graph का बिलिंग सिस्टम Arbitrum पर GRT क अत: क्वेरीज़ के लिए भुगतान करने के लिए, आपको Arbitrum पर GRT की आवश्यकता है। इसे प्राप्त करने के कुछ विभिन्न तरीके यहाँ दिए गए हैं: - यदि आपके पास पहले से Ethereum पर GRT है, तो आप इसे Arbitrum पर ब्रिज कर सकते हैं। आप यह Subgraph Studio में प्रदान किए गए GRT ब्रिजिंग विकल्प के माध्यम से या निम्नलिखित में से किसी एक ब्रिज का उपयोग करके कर सकते हैं: - - [The Arbitrum Bridge](https://bridge.arbitrum.io/?l2ChainId=42161) - [TransferTo](https://transferto.xyz/swap) diff --git a/website/src/pages/hi/indexing/overview.mdx b/website/src/pages/hi/indexing/overview.mdx index 4a9a5d556a9a..f40fdd75656a 100644 --- a/website/src/pages/hi/indexing/overview.mdx +++ b/website/src/pages/hi/indexing/overview.mdx @@ -680,13 +680,11 @@ graph indexer actions execute approve Supported action types के लिए आवंटन प्रबंधन की विभिन्न इनपुट आवश्यकताएँ होती हैं: - Allocate - किसी विशिष्ट सबग्राफ डिप्लॉयमेंट के लिए स्टेक आवंटित करें - - आवश्यक क्रिया पैरामीटर्स: - deploymentID - राशि - `अनुदेश हटाएं` - आवंटन बंद करें, जिससे दांव को मुक्त किया जा सके और इसे कहीं और पुनः आवंटित किया जा सके। - - आवश्यक क्रिया पैरामीटर्स: - allocationID - deploymentID @@ -695,7 +693,6 @@ Supported action types के लिए आवंटन प्रबंधन - बल प्रयोग करें (दिए गए POI का उपयोग तब भी करें यदि यह ग्राफ-नोड द्वारा प्रदान किए गए से मेल नहीं खाता) - `पुनः आवंटित करें` - परमाणु रूप से आवंटन को बंद करें और उसी Subgraph परिनियोजन के लिए एक नया आवंटन खोलें - - आवश्यक क्रिया पैरामीटर: - allocationID - deploymentID diff --git a/website/src/pages/hi/indexing/tap.mdx b/website/src/pages/hi/indexing/tap.mdx index 9aff98fe1eae..2d059ab8b6cf 100644 --- a/website/src/pages/hi/indexing/tap.mdx +++ b/website/src/pages/hi/indexing/tap.mdx @@ -38,7 +38,6 @@ GraphTally allows a sender to make multiple payments to a receiver, **Receipts** 3. indexer-agent सभी पिछले RAVS लेता है और ब्लॉकचेन को रिडीम अनुरोध भेजता है, जो redeem_at के मान को अपडेट करेगा। 4. `` अवधि के दौरान, `indexer-agent` यह देखता है कि क्या ब्लॉकचेन में कोई पुनर्गठन है जो लेनदेन को पूर्ववत करता है। - - यदि इसे रिवर्ट किया गया, तो RAV को फिर से ब्लॉकचेन पर भेजा जाता है। यदि इसे रिवर्ट नहीं किया गया, तो इसे final के रूप में चिह्नित किया जाता है। ## ब्लॉकचेन पते(Addresses) @@ -77,17 +76,14 @@ In addition to the typical requirements to run an indexer, you’ll need a `tap- ### कदम 1. **Indexer एजेंट** - - उसी प्रक्रिया का पालन करें'(https://github.com/graphprotocol/indexer/pkgs/container/indexer-agent#graph-protocol-indexer-components). - Give the new argument `--tap-subgraph-endpoint` to activate the new GraphTally codepaths and enable redeeming of RAVs. 2. **Indexer सेवा** - - अपने वर्तमान कॉन्फ़िगरेशन को पूरी तरह से new Indexer Service rs (https://github.com/graphprotocol/indexer-rs). से बदलें। यह सुझाव दिया गया है कि आप container image (https://github.com/orgs/graphprotocol/packages?repo_name=indexer-rs). का उपयोग करें। - पुरानी संस्करण की तरह, आप Indexer Service को आसानी से क्षैतिज रूप से स्केल कर सकते हैं। यह अभी भी stateless है। 3. **TAP एजेंट** - - हमेशा एक ही उदाहरण चलाएँ TAP Agent (https://github.com/graphprotocol/indexer-rs)। यह सिफारिश की जाती है कि आप container image (https://github.com/orgs/graphprotocol/packages?repo_name=indexer-rs). का उपयोग करें। 4. इंडेक्सर सेवा और TAP एजेंट कॉन्फ़िगर करें diff --git a/website/src/pages/hi/resources/glossary.mdx b/website/src/pages/hi/resources/glossary.mdx index 1e802e518173..68bac609a05c 100644 --- a/website/src/pages/hi/resources/glossary.mdx +++ b/website/src/pages/hi/resources/glossary.mdx @@ -15,7 +15,6 @@ title: शब्दकोष - **Indexer**: नेटवर्क प्रतिभागी जो ब्लॉकचेन से डेटा को अनुक्रमित करने के लिए अनुक्रमण नोड्स चलाते हैं और GraphQL क्वेरीज़ को सर्व करते हैं I - ** Indexer राजस्व स्रोत**: Indexer को GRT में दो घटकों के साथ पुरस्कृत किया जाता है: क्वेरी शुल्क रिबेट्स और indexing रिवार्ड्स। - 1. **Query Fee Rebates**: नेटवर्क पर queries को संसाधित करने के लिए Subgraph उपभोक्ताओं द्वारा किया गया भुगतान। 2. **Indexing Rewards**: Subgraphs को index करने के बदले Indexers को मिलने वाले इनाम। Indexing rewards हर साल 3% GRT के नए जारीकरण से उत्पन्न होते हैं। @@ -43,7 +42,6 @@ title: शब्दकोष - **अवधियों को** : नेटवर्क के भीतर समय की एक इकाई। वर्तमान में, एक अवधियों को 6,646 ब्लॉक्स या लगभग 1 दिन के बराबर होता है। - **Allocation**: एक Indexer अपने कुल GRT **stake** (जिसमें Delegators का stake भी शामिल है) को उन Subgraphs की ओर आवंटित कर सकता है, जो The Graph के विकेंद्रीकृत नेटवर्क पर प्रकाशित किए गए हैं। Allocations के विभिन्न **status** हो सकते हैं: - 1. **Active**: जब कोई allocation ऑनचेन बनाई जाती है, तो उसे **active** माना जाता है। इसे **allocation खोलना** कहा जाता है और यह नेटवर्क को संकेत देता है कि Indexer किसी विशेष Subgraph को सक्रिय रूप से **index** कर रहा है और **queries** को संसाधित कर रहा है। Active allocations, Subgraph पर दिए गए **signal** और आवंटित किए गए **GRT** की मात्रा के अनुपात में **indexing rewards** अर्जित करते हैं। 2. **Closed**: कोई Indexer किसी दिए गए Subgraph पर अर्जित **indexing rewards** का दावा करने के लिए हालिया और मान्य **Proof of Indexing (POI)** जमा कर सकता है। इसे **allocation बंद करना** कहा जाता है। - किसी allocation को बंद करने से पहले, इसे कम से कम **एक epoch** तक खुला रहना आवश्यक है। @@ -66,7 +64,6 @@ title: शब्दकोष - ** GRT**: The Graph का कार्य उपयोगिता टोकन। GRT नेटवर्क में योगदान देने वाले सहभागियों के लिए आर्थिक प्रोत्साहन प्रदान करता है। - **Proof of Indexing (POI)**: जब कोई Indexer अपनी **allocation बंद** करता है और किसी विशेष Subgraph पर अर्जित **indexing rewards** का दावा करना चाहता है, तो उसे एक **वैध और हालिया POI** प्रदान करना आवश्यक होता है। - **Fishermen** Indexer द्वारा प्रस्तुत POI पर विवाद कर सकते हैं। - - यदि विवाद Fisherman के पक्ष में हल होता है, तो संबंधित Indexer का **slashing** किया जाता है। - **Graph Node**: वह **component** जो Subgraphs को **index** करता है और उत्पन्न डेटा को **GraphQL API** के माध्यम से query करने के लिए उपलब्ध कराता है। यह Indexer **stack** का एक केंद्रीय भाग है, और Graph Node का सही संचालन एक सफल Indexer चलाने के लिए आवश्यक है। diff --git a/website/src/pages/hi/resources/roles/delegating/undelegating.mdx b/website/src/pages/hi/resources/roles/delegating/undelegating.mdx index 06b53896a7ea..164098506dd8 100644 --- a/website/src/pages/hi/resources/roles/delegating/undelegating.mdx +++ b/website/src/pages/hi/resources/roles/delegating/undelegating.mdx @@ -13,13 +13,11 @@ Learn how to withdraw your delegated tokens through [Graph Explorer](https://the 1. Visit [Graph Explorer](https://thegraph.com/explorer). Please make sure you're on Explorer and **not** Subgraph Studio. 2. Click on your profile. You can find it on the top right corner of the page. - - Make sure that your wallet is connected. If it's not connected, you will see the "connect" button instead. 3. Once you're in your profile, click on the Delegating tab. In the Delegating tab, you can view the list of Indexers you have delegated to. 4. Click on the Indexer from which you wish to withdraw your tokens. - - Make sure to note the specific Indexer, as you will need to find them again to withdraw. 5. Select the "Undelegate" option by clicking on the three dots next to the Indexer on the right side, see image below: @@ -37,11 +35,9 @@ Learn how to withdraw your delegated tokens through [Graph Explorer](https://the ### चरण-दर-चरण 1. Find your delegation transaction on Arbiscan. - - Here's an [example transaction on Arbiscan](https://arbiscan.io/tx/0xcf2110eac897099f821064445041031efb32786392bdbe7544a4cb7a6b2e4f9a) 2. Navigate to "Transaction Action" where you can find the staking extension contract: - - [This is the staking extension contract for the example listed above](https://arbiscan.io/address/0x00669A4CF01450B64E8A2A20E9b1FCB71E61eF03) 3. Then click on "Contract". ![Contract tab on Arbiscan, between NFT Transfers and Events](/img/arbiscan-contract.png) @@ -59,7 +55,6 @@ Learn how to withdraw your delegated tokens through [Graph Explorer](https://the 9. If you don't know how many tokens you delegated, you can call `getDelegation` on the Read Custom tab. You will need to paste your address (delegator address) and the address of the Indexer that you delegated to, as shown in the following screenshot: ![Both of the addresses needed](/img/get-delegate.png) - - This will return three numbers. The first number is the amount you can unstake. 10. After you have called `unstake`, you can withdraw after approximately 28 epochs (28 days) by calling the `withdraw` function. diff --git a/website/src/pages/hi/subgraphs/best-practices/grafting-hotfix.mdx b/website/src/pages/hi/subgraphs/best-practices/grafting-hotfix.mdx index bfab7b096073..5a27fcddfeec 100644 --- a/website/src/pages/hi/subgraphs/best-practices/grafting-hotfix.mdx +++ b/website/src/pages/hi/subgraphs/best-practices/grafting-hotfix.mdx @@ -14,12 +14,10 @@ This feature enables quick deployment of hotfixes for critical issues, eliminati ## Benefits of Grafting for Hotfixes 1. **Rapid Deployment** - - **Minimize Downtime**: When a Subgraph encounters a critical error and stops indexing, grafting enables you to deploy a fix immediately without waiting for re-indexing. - **Immediate Recovery**: The new Subgraph continues from the last indexed block, ensuring that data services remain uninterrupted. 2. **डेटा प्रिजर्वेशन** - - **Reuse Historical Data**: Grafting copies the existing data from the base Subgraph, so you don’t lose valuable historical records. - **Consistency**: Maintains data continuity, which is crucial for applications relying on consistent historical data. @@ -30,19 +28,16 @@ This feature enables quick deployment of hotfixes for critical issues, eliminati ## Best Practices When Using Grafting for Hotfixes 1. **Initial Deployment Without Grafting** - - **Start Clean**: Always deploy your initial Subgraph without grafting to ensure that it’s stable and functions as expected. - **Test Thoroughly**: Validate the Subgraph’s performance to minimize the need for future hotfixes. 2. **Implementing the Hotfix with Grafting** - - **Identify the Issue**: When a critical error occurs, determine the block number of the last successfully indexed event. - **Create a New Subgraph**: Develop a new Subgraph that includes the hotfix. - **Configure Grafting**: Use grafting to copy data up to the identified block number from the failed Subgraph. - **Deploy Quickly**: Publish the grafted Subgraph to restore service as soon as possible. 3. **Post-Hotfix Actions** - - **Monitor Performance**: Ensure the grafted Subgraph is indexing correctly and the hotfix resolves the issue. - **Republish Without Grafting**: Once stable, deploy a new version of the Subgraph without grafting for long-term maintenance. > Note: Relying on grafting indefinitely is not recommended as it can complicate future updates and maintenance. @@ -130,7 +125,6 @@ Suppose you have a Subgraph tracking a smart contract that has stopped indexing - **block**: Block number where grafting should begin. 3. **Deployment Steps** - - **Update the Code**: Implement the hotfix in your mapping scripts (e.g., handleWithdrawal). - **Adjust the Manifest**: As shown above, update the `subgraph.yaml` with grafting configurations. - **Deploy the Subgraph**: diff --git a/website/src/pages/hi/subgraphs/developing/creating/install-the-cli.mdx b/website/src/pages/hi/subgraphs/developing/creating/install-the-cli.mdx index 031c70bf3507..f635f905a51e 100644 --- a/website/src/pages/hi/subgraphs/developing/creating/install-the-cli.mdx +++ b/website/src/pages/hi/subgraphs/developing/creating/install-the-cli.mdx @@ -46,7 +46,6 @@ graph init \ ``` - कमांड Etherscan से कॉन्ट्रैक्ट ABI को पुनः प्राप्त करने की कोशिश करता है। - - The Graph CLI एक सार्वजनिक RPC एंडपॉइंट पर निर्भर करता है। जबकि कुछ असफलताएँ अपेक्षित हैं, पुनः प्रयास आमतौर पर इस समस्या को हल कर देते हैं। यदि असफलताएँ बनी रहती हैं, तो एक स्थानीय ABI का उपयोग करने पर विचार करें। - यदि कोई वैकल्पिक तर्क गायब है, तो यह आपको एक इंटरैक्टिव फॉर्म के माध्यम से मार्गदर्शन करता है। @@ -87,7 +86,6 @@ Options: The `graph add` command will fetch the ABI from Etherscan (unless an ABI path is specified with the `--abi` option) and creates a new `dataSource`, similar to how the `graph init` command creates a `dataSource` `--from-contract`, updating the schema and mappings accordingly. This allows you to index implementation contracts from their proxy contracts. - The `--merge-entities` option identifies how the developer would like to handle `entity` and `event` name conflicts: - - If `true`: the new `dataSource` should use existing `eventHandlers` & `entities`. - If `false`: a new `entity` & `event` handler should be created with `${dataSourceName}{EventName}`. diff --git a/website/src/pages/hi/subgraphs/developing/managing/deleting-a-subgraph.mdx b/website/src/pages/hi/subgraphs/developing/managing/deleting-a-subgraph.mdx index 02fdc71480ef..f5a1a937f13f 100644 --- a/website/src/pages/hi/subgraphs/developing/managing/deleting-a-subgraph.mdx +++ b/website/src/pages/hi/subgraphs/developing/managing/deleting-a-subgraph.mdx @@ -17,7 +17,6 @@ Delete your Subgraph using [Subgraph Studio](https://thegraph.com/studio/). ![Delete-subgraph](/img/Delete-subgraph.png) 4. Depending on the Subgraph's status, you will be prompted with various options. - - If the Subgraph is not published, simply click “delete” and confirm. - If the Subgraph is published, you will need to confirm on your wallet before the Subgraph can be deleted from Studio. If a Subgraph is published to multiple networks, such as testnet and mainnet, additional steps may be required. diff --git a/website/src/pages/hi/subgraphs/explorer.mdx b/website/src/pages/hi/subgraphs/explorer.mdx index 64a671781463..93498d3e746f 100644 --- a/website/src/pages/hi/subgraphs/explorer.mdx +++ b/website/src/pages/hi/subgraphs/explorer.mdx @@ -26,7 +26,6 @@ When you click into a Subgraph, you will be able to do the following: - प्लेग्राउंड में परीक्षण प्रश्न करें और सूचनापूर्ण निर्णय लेने के लिए नेटवर्क विवरण का उपयोग करें। - Signal GRT on your own Subgraph or the Subgraphs of others to make indexers aware of its importance and quality. - - This is critical because signaling on a Subgraph incentivizes it to be indexed, meaning it’ll eventually surface on the network to serve queries. ![Explorer Image 2](/img/Subgraph-Details.png) diff --git a/website/src/pages/hi/subgraphs/mcp/claude.mdx b/website/src/pages/hi/subgraphs/mcp/claude.mdx index 8b61438d2ab7..027b272cb942 100644 --- a/website/src/pages/hi/subgraphs/mcp/claude.mdx +++ b/website/src/pages/hi/subgraphs/mcp/claude.mdx @@ -85,7 +85,6 @@ Once you've entered your Gateway API key into your settings, save the file and r 2. **Find the Command Path** After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. - - Navigate to your `subgraph-mcp` directory in terminal - Run `pwd` to get the full path - Combine the output with `/target/release/subgraph-mcp` diff --git a/website/src/pages/hi/subgraphs/quick-start.mdx b/website/src/pages/hi/subgraphs/quick-start.mdx index cbf3550a3170..53ff9ee2994e 100644 --- a/website/src/pages/hi/subgraphs/quick-start.mdx +++ b/website/src/pages/hi/subgraphs/quick-start.mdx @@ -166,11 +166,9 @@ graph publish #### सिग्नल को अपने Subgraph में जोड़ना 1. Indexers को अपने सबग्राफ से क्वेरी करने के लिए आकर्षित करने हेतु, आपको इसमें GRT क्यूरेशन सिग्नल जोड़ना चाहिए। - - यह कार्रवाई सेवा की गुणवत्ता में सुधार करती है, विलंबता को कम करती है, और आपके सबग्राफ के लिए नेटवर्क की पुनरावृत्ति और उपलब्धता को बढ़ाती है। 2. यदि इंडेक्सिंग पुरस्कारों के लिए योग्य हैं, तो Indexers संकेतित राशि के आधार पर GRT पुरस्कार प्राप्त करते हैं। - - यह अनुशंसा की जाती है कि कम से कम 3,000 GRT को क्यूरेट किया जाए ताकि 3 Indexers को आकर्षित किया जा सके। सबग्राफ फीचर उपयोग और समर्थित नेटवर्क के आधार पर पुरस्कार पात्रता की जांच करें। Curation के बारे में और जानने के लिए, [Curating](/resources/roles/curating/) पढ़ें. diff --git a/website/src/pages/it/archived/arbitrum/arbitrum-faq.mdx b/website/src/pages/it/archived/arbitrum/arbitrum-faq.mdx index 5c4dc7fa3aa3..d550cbe8a528 100644 --- a/website/src/pages/it/archived/arbitrum/arbitrum-faq.mdx +++ b/website/src/pages/it/archived/arbitrum/arbitrum-faq.mdx @@ -25,7 +25,6 @@ The Graph’s billing system accepts GRT on Arbitrum, and users will need ETH on Consequently, to pay for queries, you need GRT on Arbitrum. Here are a few different ways to achieve this: - If you already have GRT on Ethereum, you can bridge it to Arbitrum. You can do this via the GRT bridging option provided in Subgraph Studio or by using one of the following bridges: - - [The Arbitrum Bridge](https://bridge.arbitrum.io/?l2ChainId=42161) - [TransferTo](https://transferto.xyz/swap) diff --git a/website/src/pages/it/indexing/overview.mdx b/website/src/pages/it/indexing/overview.mdx index 6f8dcb45fe8f..90464daede59 100644 --- a/website/src/pages/it/indexing/overview.mdx +++ b/website/src/pages/it/indexing/overview.mdx @@ -680,13 +680,11 @@ graph indexer actions execute approve Note that supported action types for allocation management have different input requirements: - `Allocate` - allocate stake to a specific Subgraph deployment - - required action params: - deploymentID - amount - `Unallocate` - close allocation, freeing up the stake to reallocate elsewhere - - required action params: - allocationID - deploymentID @@ -695,7 +693,6 @@ Note that supported action types for allocation management have different input - force (forces using the provided POI even if it doesn’t match what the graph-node provides) - `Reallocate` - atomically close allocation and open a fresh allocation for the same Subgraph deployment - - required action params: - allocationID - deploymentID diff --git a/website/src/pages/it/indexing/tap.mdx b/website/src/pages/it/indexing/tap.mdx index 384ed571abd5..3ebdc5de4dbb 100644 --- a/website/src/pages/it/indexing/tap.mdx +++ b/website/src/pages/it/indexing/tap.mdx @@ -38,7 +38,6 @@ As long as you run `tap-agent` and `indexer-agent`, everything will be executed 3. `indexer-agent` takes all the last RAVS and sends redeem requests to the blockchain, which will update the value of `redeem_at`. 4. During the `` period, `indexer-agent` monitors if the blockchain has any reorganizations that revert the transaction. - - If it was reverted, the RAV is resent to the blockchain. If it was not reverted, it gets marked as `final`. ## Blockchain Addresses @@ -77,17 +76,14 @@ The required software version can be found [here](https://github.com/graphprotoc ### Steps 1. **Indexer Agent** - - Follow the [same process](https://github.com/graphprotocol/indexer/pkgs/container/indexer-agent#graph-protocol-indexer-components). - Give the new argument `--tap-subgraph-endpoint` to activate the new GraphTally codepaths and enable redeeming of RAVs. 2. **Indexer Service** - - Fully replace your current configuration with the [new Indexer Service rs](https://github.com/graphprotocol/indexer-rs). It's recommend that you use the [container image](https://github.com/orgs/graphprotocol/packages?repo_name=indexer-rs). - Like the older version, you can scale Indexer Service horizontally easily. It is still stateless. 3. **TAP Agent** - - Run _one_ single instance of [TAP Agent](https://github.com/graphprotocol/indexer-rs) at all times. It's recommend that you use the [container image](https://github.com/orgs/graphprotocol/packages?repo_name=indexer-rs). 4. **Configure Indexer Service and TAP Agent** diff --git a/website/src/pages/it/resources/glossary.mdx b/website/src/pages/it/resources/glossary.mdx index 4c5ad55cd0d3..31402db1084a 100644 --- a/website/src/pages/it/resources/glossary.mdx +++ b/website/src/pages/it/resources/glossary.mdx @@ -15,7 +15,6 @@ title: Glossary - **Indexer**: Network participants that run indexing nodes to index data from blockchains and serve GraphQL queries. - **Indexer Revenue Streams**: Indexers are rewarded in GRT with two components: query fee rebates and indexing rewards. - 1. **Query Fee Rebates**: Payments from Subgraph consumers for serving queries on the network. 2. **Indexing Rewards**: The rewards that Indexers receive for indexing Subgraphs. Indexing rewards are generated via new issuance of 3% GRT annually. @@ -43,7 +42,6 @@ title: Glossary - **Epoch**: A unit of time within the network. Currently, one epoch is 6,646 blocks or approximately 1 day. - **Allocation**: An Indexer can allocate their total GRT stake (including Delegators' stake) towards Subgraphs that have been published on The Graph's decentralized network. Allocations can have different statuses: - 1. **Active**: An allocation is considered active when it is created onchain. This is called opening an allocation, and indicates to the network that the Indexer is actively indexing and serving queries for a particular Subgraph. Active allocations accrue indexing rewards proportional to the signal on the Subgraph, and the amount of GRT allocated. 2. **Closed**: An Indexer may claim the accrued indexing rewards on a given Subgraph by submitting a recent, and valid, Proof of Indexing (POI). This is known as closing an allocation. An allocation must have been open for a minimum of one epoch before it can be closed. The maximum allocation period is 28 epochs. If an Indexer leaves an allocation open beyond 28 epochs, it is known as a stale allocation. When an allocation is in the **Closed** state, a Fisherman can still open a dispute to challenge an Indexer for serving false data. diff --git a/website/src/pages/it/resources/roles/delegating/undelegating.mdx b/website/src/pages/it/resources/roles/delegating/undelegating.mdx index c3e31e653941..9c10e47eb771 100644 --- a/website/src/pages/it/resources/roles/delegating/undelegating.mdx +++ b/website/src/pages/it/resources/roles/delegating/undelegating.mdx @@ -13,13 +13,11 @@ Learn how to withdraw your delegated tokens through [Graph Explorer](https://the 1. Visit [Graph Explorer](https://thegraph.com/explorer). Please make sure you're on Explorer and **not** Subgraph Studio. 2. Click on your profile. You can find it on the top right corner of the page. - - Make sure that your wallet is connected. If it's not connected, you will see the "connect" button instead. 3. Once you're in your profile, click on the Delegating tab. In the Delegating tab, you can view the list of Indexers you have delegated to. 4. Click on the Indexer from which you wish to withdraw your tokens. - - Make sure to note the specific Indexer, as you will need to find them again to withdraw. 5. Select the "Undelegate" option by clicking on the three dots next to the Indexer on the right side, see image below: @@ -37,11 +35,9 @@ Learn how to withdraw your delegated tokens through [Graph Explorer](https://the ### Step-by-Step 1. Find your delegation transaction on Arbiscan. - - Here's an [example transaction on Arbiscan](https://arbiscan.io/tx/0xcf2110eac897099f821064445041031efb32786392bdbe7544a4cb7a6b2e4f9a) 2. Navigate to "Transaction Action" where you can find the staking extension contract: - - [This is the staking extension contract for the example listed above](https://arbiscan.io/address/0x00669A4CF01450B64E8A2A20E9b1FCB71E61eF03) 3. Then click on "Contract". ![Contract tab on Arbiscan, between NFT Transfers and Events](/img/arbiscan-contract.png) @@ -59,7 +55,6 @@ Learn how to withdraw your delegated tokens through [Graph Explorer](https://the 9. If you don't know how many tokens you delegated, you can call `getDelegation` on the Read Custom tab. You will need to paste your address (delegator address) and the address of the Indexer that you delegated to, as shown in the following screenshot: ![Both of the addresses needed](/img/get-delegate.png) - - This will return three numbers. The first number is the amount you can unstake. 10. After you have called `unstake`, you can withdraw after approximately 28 epochs (28 days) by calling the `withdraw` function. diff --git a/website/src/pages/it/subgraphs/best-practices/grafting-hotfix.mdx b/website/src/pages/it/subgraphs/best-practices/grafting-hotfix.mdx index ab6bd38a1247..3d0b9ba70ebd 100644 --- a/website/src/pages/it/subgraphs/best-practices/grafting-hotfix.mdx +++ b/website/src/pages/it/subgraphs/best-practices/grafting-hotfix.mdx @@ -14,12 +14,10 @@ This feature enables quick deployment of hotfixes for critical issues, eliminati ## Benefits of Grafting for Hotfixes 1. **Rapid Deployment** - - **Minimize Downtime**: When a Subgraph encounters a critical error and stops indexing, grafting enables you to deploy a fix immediately without waiting for re-indexing. - **Immediate Recovery**: The new Subgraph continues from the last indexed block, ensuring that data services remain uninterrupted. 2. **Data Preservation** - - **Reuse Historical Data**: Grafting copies the existing data from the base Subgraph, so you don’t lose valuable historical records. - **Consistency**: Maintains data continuity, which is crucial for applications relying on consistent historical data. @@ -30,19 +28,16 @@ This feature enables quick deployment of hotfixes for critical issues, eliminati ## Best Practices When Using Grafting for Hotfixes 1. **Initial Deployment Without Grafting** - - **Start Clean**: Always deploy your initial Subgraph without grafting to ensure that it’s stable and functions as expected. - **Test Thoroughly**: Validate the Subgraph’s performance to minimize the need for future hotfixes. 2. **Implementing the Hotfix with Grafting** - - **Identify the Issue**: When a critical error occurs, determine the block number of the last successfully indexed event. - **Create a New Subgraph**: Develop a new Subgraph that includes the hotfix. - **Configure Grafting**: Use grafting to copy data up to the identified block number from the failed Subgraph. - **Deploy Quickly**: Publish the grafted Subgraph to restore service as soon as possible. 3. **Post-Hotfix Actions** - - **Monitor Performance**: Ensure the grafted Subgraph is indexing correctly and the hotfix resolves the issue. - **Republish Without Grafting**: Once stable, deploy a new version of the Subgraph without grafting for long-term maintenance. > Note: Relying on grafting indefinitely is not recommended as it can complicate future updates and maintenance. @@ -130,7 +125,6 @@ Suppose you have a Subgraph tracking a smart contract that has stopped indexing - **block**: Block number where grafting should begin. 3. **Deployment Steps** - - **Update the Code**: Implement the hotfix in your mapping scripts (e.g., handleWithdrawal). - **Adjust the Manifest**: As shown above, update the `subgraph.yaml` with grafting configurations. - **Deploy the Subgraph**: diff --git a/website/src/pages/it/subgraphs/developing/creating/install-the-cli.mdx b/website/src/pages/it/subgraphs/developing/creating/install-the-cli.mdx index 20770b2e37b7..ce93f6b6c022 100644 --- a/website/src/pages/it/subgraphs/developing/creating/install-the-cli.mdx +++ b/website/src/pages/it/subgraphs/developing/creating/install-the-cli.mdx @@ -46,7 +46,6 @@ graph init \ ``` - The command tries to retrieve the contract ABI from Etherscan. - - The Graph CLI relies on a public RPC endpoint. While occasional failures are expected, retries typically resolve this issue. If failures persist, consider using a local ABI. - If any of the optional arguments are missing, it guides you through an interactive form. @@ -87,7 +86,6 @@ Options: The `graph add` command will fetch the ABI from Etherscan (unless an ABI path is specified with the `--abi` option) and creates a new `dataSource`, similar to how the `graph init` command creates a `dataSource` `--from-contract`, updating the schema and mappings accordingly. This allows you to index implementation contracts from their proxy contracts. - The `--merge-entities` option identifies how the developer would like to handle `entity` and `event` name conflicts: - - If `true`: the new `dataSource` should use existing `eventHandlers` & `entities`. - If `false`: a new `entity` & `event` handler should be created with `${dataSourceName}{EventName}`. diff --git a/website/src/pages/it/subgraphs/developing/managing/deleting-a-subgraph.mdx b/website/src/pages/it/subgraphs/developing/managing/deleting-a-subgraph.mdx index b8c2330ca49d..f842a0e04ac4 100644 --- a/website/src/pages/it/subgraphs/developing/managing/deleting-a-subgraph.mdx +++ b/website/src/pages/it/subgraphs/developing/managing/deleting-a-subgraph.mdx @@ -17,7 +17,6 @@ Delete your Subgraph using [Subgraph Studio](https://thegraph.com/studio/). ![Delete-subgraph](/img/Delete-subgraph.png) 4. Depending on the Subgraph's status, you will be prompted with various options. - - If the Subgraph is not published, simply click “delete” and confirm. - If the Subgraph is published, you will need to confirm on your wallet before the Subgraph can be deleted from Studio. If a Subgraph is published to multiple networks, such as testnet and mainnet, additional steps may be required. diff --git a/website/src/pages/it/subgraphs/explorer.mdx b/website/src/pages/it/subgraphs/explorer.mdx index 5db7212c1fb0..30f15b4cdc94 100644 --- a/website/src/pages/it/subgraphs/explorer.mdx +++ b/website/src/pages/it/subgraphs/explorer.mdx @@ -26,7 +26,6 @@ When you click into a Subgraph, you will be able to do the following: - Test queries in the playground and be able to leverage network details to make informed decisions. - Signal GRT on your own Subgraph or the Subgraphs of others to make indexers aware of its importance and quality. - - This is critical because signaling on a Subgraph incentivizes it to be indexed, meaning it’ll eventually surface on the network to serve queries. ![Explorer Image 2](/img/Subgraph-Details.png) diff --git a/website/src/pages/it/subgraphs/mcp/claude.mdx b/website/src/pages/it/subgraphs/mcp/claude.mdx index 8b61438d2ab7..027b272cb942 100644 --- a/website/src/pages/it/subgraphs/mcp/claude.mdx +++ b/website/src/pages/it/subgraphs/mcp/claude.mdx @@ -85,7 +85,6 @@ Once you've entered your Gateway API key into your settings, save the file and r 2. **Find the Command Path** After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. - - Navigate to your `subgraph-mcp` directory in terminal - Run `pwd` to get the full path - Combine the output with `/target/release/subgraph-mcp` diff --git a/website/src/pages/it/subgraphs/quick-start.mdx b/website/src/pages/it/subgraphs/quick-start.mdx index a803ac8695fa..3c43e2dc2bb4 100644 --- a/website/src/pages/it/subgraphs/quick-start.mdx +++ b/website/src/pages/it/subgraphs/quick-start.mdx @@ -166,11 +166,9 @@ To customize your deployment, see [Publishing a Subgraph](/subgraphs/developing/ #### Adding signal to your Subgraph 1. To attract Indexers to query your Subgraph, you should add GRT curation signal to it. - - This action improves quality of service, reduces latency, and enhances network redundancy and availability for your Subgraph. 2. If eligible for indexing rewards, Indexers receive GRT rewards based on the signaled amount. - - It’s recommended to curate at least 3,000 GRT to attract 3 Indexers. Check reward eligibility based on Subgraph feature usage and supported networks. To learn more about curation, read [Curating](/resources/roles/curating/). diff --git a/website/src/pages/ja/archived/arbitrum/arbitrum-faq.mdx b/website/src/pages/ja/archived/arbitrum/arbitrum-faq.mdx index cc0c098f0af1..9a12e12b41cc 100644 --- a/website/src/pages/ja/archived/arbitrum/arbitrum-faq.mdx +++ b/website/src/pages/ja/archived/arbitrum/arbitrum-faq.mdx @@ -25,7 +25,6 @@ The Graph’s billing system accepts GRT on Arbitrum, and users will need ETH on Consequently, to pay for queries, you need GRT on Arbitrum. Here are a few different ways to achieve this: - If you already have GRT on Ethereum, you can bridge it to Arbitrum. You can do this via the GRT bridging option provided in Subgraph Studio or by using one of the following bridges: - - [The Arbitrum Bridge](https://bridge.arbitrum.io/?l2ChainId=42161) - [TransferTo](https://transferto.xyz/swap) diff --git a/website/src/pages/ja/indexing/overview.mdx b/website/src/pages/ja/indexing/overview.mdx index 4478e166a307..c1f89ba0c1d3 100644 --- a/website/src/pages/ja/indexing/overview.mdx +++ b/website/src/pages/ja/indexing/overview.mdx @@ -680,13 +680,11 @@ graph indexer actions execute approve Note that supported action types for allocation management have different input requirements: - `Allocate` - allocate stake to a specific Subgraph deployment - - required action params: - deploymentID - amount - `Unallocate` - close allocation, freeing up the stake to reallocate elsewhere - - required action params: - allocationID - deploymentID @@ -695,7 +693,6 @@ Note that supported action types for allocation management have different input - force (forces using the provided POI even if it doesn’t match what the graph-node provides) - `Reallocate` - atomically close allocation and open a fresh allocation for the same Subgraph deployment - - required action params: - allocationID - deploymentID diff --git a/website/src/pages/ja/indexing/tap.mdx b/website/src/pages/ja/indexing/tap.mdx index 61a0f77343c3..79838e44666a 100644 --- a/website/src/pages/ja/indexing/tap.mdx +++ b/website/src/pages/ja/indexing/tap.mdx @@ -38,7 +38,6 @@ As long as you run `tap-agent` and `indexer-agent`, everything will be executed 3. `indexer-agent` takes all the last RAVS and sends redeem requests to the blockchain, which will update the value of `redeem_at`. 4. During the `` period, `indexer-agent` monitors if the blockchain has any reorganizations that revert the transaction. - - If it was reverted, the RAV is resent to the blockchain. If it was not reverted, it gets marked as `final`. ## Blockchain Addresses @@ -77,17 +76,14 @@ The required software version can be found [here](https://github.com/graphprotoc ### Steps 1. **Indexer Agent** - - Follow the [same process](https://github.com/graphprotocol/indexer/pkgs/container/indexer-agent#graph-protocol-indexer-components). - Give the new argument `--tap-subgraph-endpoint` to activate the new GraphTally codepaths and enable redeeming of RAVs. 2. **Indexer Service** - - Fully replace your current configuration with the [new Indexer Service rs](https://github.com/graphprotocol/indexer-rs). It's recommend that you use the [container image](https://github.com/orgs/graphprotocol/packages?repo_name=indexer-rs). - Like the older version, you can scale Indexer Service horizontally easily. It is still stateless. 3. **TAP Agent** - - Run _one_ single instance of [TAP Agent](https://github.com/graphprotocol/indexer-rs) at all times. It's recommend that you use the [container image](https://github.com/orgs/graphprotocol/packages?repo_name=indexer-rs). 4. **Configure Indexer Service and TAP Agent** diff --git a/website/src/pages/ja/resources/glossary.mdx b/website/src/pages/ja/resources/glossary.mdx index 6a602dd4c2d2..d57378bad62a 100644 --- a/website/src/pages/ja/resources/glossary.mdx +++ b/website/src/pages/ja/resources/glossary.mdx @@ -15,7 +15,6 @@ title: 用語集 - **Indexer**: Network participants that run indexing nodes to index data from blockchains and serve GraphQL queries. - **Indexer Revenue Streams**: Indexers are rewarded in GRT with two components: query fee rebates and indexing rewards. - 1. **Query Fee Rebates**: Payments from Subgraph consumers for serving queries on the network. 2. **Indexing Rewards**: The rewards that Indexers receive for indexing Subgraphs. Indexing rewards are generated via new issuance of 3% GRT annually. @@ -43,7 +42,6 @@ title: 用語集 - **Epoch**: A unit of time within the network. Currently, one epoch is 6,646 blocks or approximately 1 day. - **Allocation**: An Indexer can allocate their total GRT stake (including Delegators' stake) towards Subgraphs that have been published on The Graph's decentralized network. Allocations can have different statuses: - 1. **Active**: An allocation is considered active when it is created onchain. This is called opening an allocation, and indicates to the network that the Indexer is actively indexing and serving queries for a particular Subgraph. Active allocations accrue indexing rewards proportional to the signal on the Subgraph, and the amount of GRT allocated. 2. **Closed**: An Indexer may claim the accrued indexing rewards on a given Subgraph by submitting a recent, and valid, Proof of Indexing (POI). This is known as closing an allocation. An allocation must have been open for a minimum of one epoch before it can be closed. The maximum allocation period is 28 epochs. If an Indexer leaves an allocation open beyond 28 epochs, it is known as a stale allocation. When an allocation is in the **Closed** state, a Fisherman can still open a dispute to challenge an Indexer for serving false data. diff --git a/website/src/pages/ja/resources/roles/delegating/undelegating.mdx b/website/src/pages/ja/resources/roles/delegating/undelegating.mdx index f350db31296b..ebee6ee9ab39 100644 --- a/website/src/pages/ja/resources/roles/delegating/undelegating.mdx +++ b/website/src/pages/ja/resources/roles/delegating/undelegating.mdx @@ -13,13 +13,11 @@ Learn how to withdraw your delegated tokens through [Graph Explorer](https://the 1. Visit [Graph Explorer](https://thegraph.com/explorer). Please make sure you're on Explorer and **not** Subgraph Studio. 2. Click on your profile. You can find it on the top right corner of the page. - - Make sure that your wallet is connected. If it's not connected, you will see the "connect" button instead. 3. Once you're in your profile, click on the Delegating tab. In the Delegating tab, you can view the list of Indexers you have delegated to. 4. Click on the Indexer from which you wish to withdraw your tokens. - - Make sure to note the specific Indexer, as you will need to find them again to withdraw. 5. Select the "Undelegate" option by clicking on the three dots next to the Indexer on the right side, see image below: @@ -37,11 +35,9 @@ Learn how to withdraw your delegated tokens through [Graph Explorer](https://the ### Step-by-Step 1. Find your delegation transaction on Arbiscan. - - Here's an [example transaction on Arbiscan](https://arbiscan.io/tx/0xcf2110eac897099f821064445041031efb32786392bdbe7544a4cb7a6b2e4f9a) 2. Navigate to "Transaction Action" where you can find the staking extension contract: - - [This is the staking extension contract for the example listed above](https://arbiscan.io/address/0x00669A4CF01450B64E8A2A20E9b1FCB71E61eF03) 3. Then click on "Contract". ![Contract tab on Arbiscan, between NFT Transfers and Events](/img/arbiscan-contract.png) @@ -59,7 +55,6 @@ Learn how to withdraw your delegated tokens through [Graph Explorer](https://the 9. If you don't know how many tokens you delegated, you can call `getDelegation` on the Read Custom tab. You will need to paste your address (delegator address) and the address of the Indexer that you delegated to, as shown in the following screenshot: ![Both of the addresses needed](/img/get-delegate.png) - - This will return three numbers. The first number is the amount you can unstake. 10. After you have called `unstake`, you can withdraw after approximately 28 epochs (28 days) by calling the `withdraw` function. diff --git a/website/src/pages/ja/subgraphs/best-practices/grafting-hotfix.mdx b/website/src/pages/ja/subgraphs/best-practices/grafting-hotfix.mdx index f4726b7a89b8..c4eaf5816b94 100644 --- a/website/src/pages/ja/subgraphs/best-practices/grafting-hotfix.mdx +++ b/website/src/pages/ja/subgraphs/best-practices/grafting-hotfix.mdx @@ -14,12 +14,10 @@ This feature enables quick deployment of hotfixes for critical issues, eliminati ## Benefits of Grafting for Hotfixes 1. **Rapid Deployment** - - **Minimize Downtime**: When a Subgraph encounters a critical error and stops indexing, grafting enables you to deploy a fix immediately without waiting for re-indexing. - **Immediate Recovery**: The new Subgraph continues from the last indexed block, ensuring that data services remain uninterrupted. 2. **Data Preservation** - - **Reuse Historical Data**: Grafting copies the existing data from the base Subgraph, so you don’t lose valuable historical records. - **Consistency**: Maintains data continuity, which is crucial for applications relying on consistent historical data. @@ -30,19 +28,16 @@ This feature enables quick deployment of hotfixes for critical issues, eliminati ## Best Practices When Using Grafting for Hotfixes 1. **Initial Deployment Without Grafting** - - **Start Clean**: Always deploy your initial Subgraph without grafting to ensure that it’s stable and functions as expected. - **Test Thoroughly**: Validate the Subgraph’s performance to minimize the need for future hotfixes. 2. **Implementing the Hotfix with Grafting** - - **Identify the Issue**: When a critical error occurs, determine the block number of the last successfully indexed event. - **Create a New Subgraph**: Develop a new Subgraph that includes the hotfix. - **Configure Grafting**: Use grafting to copy data up to the identified block number from the failed Subgraph. - **Deploy Quickly**: Publish the grafted Subgraph to restore service as soon as possible. 3. **Post-Hotfix Actions** - - **Monitor Performance**: Ensure the grafted Subgraph is indexing correctly and the hotfix resolves the issue. - **Republish Without Grafting**: Once stable, deploy a new version of the Subgraph without grafting for long-term maintenance. > Note: Relying on grafting indefinitely is not recommended as it can complicate future updates and maintenance. @@ -130,7 +125,6 @@ Suppose you have a Subgraph tracking a smart contract that has stopped indexing - **block**: Block number where grafting should begin. 3. **Deployment Steps** - - **Update the Code**: Implement the hotfix in your mapping scripts (e.g., handleWithdrawal). - **Adjust the Manifest**: As shown above, update the `subgraph.yaml` with grafting configurations. - **Deploy the Subgraph**: diff --git a/website/src/pages/ja/subgraphs/developing/creating/install-the-cli.mdx b/website/src/pages/ja/subgraphs/developing/creating/install-the-cli.mdx index 3352df16b841..9b70152aa198 100644 --- a/website/src/pages/ja/subgraphs/developing/creating/install-the-cli.mdx +++ b/website/src/pages/ja/subgraphs/developing/creating/install-the-cli.mdx @@ -46,7 +46,6 @@ graph init \ ``` - The command tries to retrieve the contract ABI from Etherscan. - - The Graph CLI relies on a public RPC endpoint. While occasional failures are expected, retries typically resolve this issue. If failures persist, consider using a local ABI. - If any of the optional arguments are missing, it guides you through an interactive form. @@ -87,7 +86,6 @@ Options: The `graph add` command will fetch the ABI from Etherscan (unless an ABI path is specified with the `--abi` option) and creates a new `dataSource`, similar to how the `graph init` command creates a `dataSource` `--from-contract`, updating the schema and mappings accordingly. This allows you to index implementation contracts from their proxy contracts. - The `--merge-entities` option identifies how the developer would like to handle `entity` and `event` name conflicts: - - If `true`: the new `dataSource` should use existing `eventHandlers` & `entities`. - If `false`: a new `entity` & `event` handler should be created with `${dataSourceName}{EventName}`. diff --git a/website/src/pages/ja/subgraphs/developing/managing/deleting-a-subgraph.mdx b/website/src/pages/ja/subgraphs/developing/managing/deleting-a-subgraph.mdx index b8c2330ca49d..f842a0e04ac4 100644 --- a/website/src/pages/ja/subgraphs/developing/managing/deleting-a-subgraph.mdx +++ b/website/src/pages/ja/subgraphs/developing/managing/deleting-a-subgraph.mdx @@ -17,7 +17,6 @@ Delete your Subgraph using [Subgraph Studio](https://thegraph.com/studio/). ![Delete-subgraph](/img/Delete-subgraph.png) 4. Depending on the Subgraph's status, you will be prompted with various options. - - If the Subgraph is not published, simply click “delete” and confirm. - If the Subgraph is published, you will need to confirm on your wallet before the Subgraph can be deleted from Studio. If a Subgraph is published to multiple networks, such as testnet and mainnet, additional steps may be required. diff --git a/website/src/pages/ja/subgraphs/explorer.mdx b/website/src/pages/ja/subgraphs/explorer.mdx index 0357d63fda7e..59737fdcaeed 100644 --- a/website/src/pages/ja/subgraphs/explorer.mdx +++ b/website/src/pages/ja/subgraphs/explorer.mdx @@ -26,7 +26,6 @@ When you click into a Subgraph, you will be able to do the following: - Test queries in the playground and be able to leverage network details to make informed decisions. - Signal GRT on your own Subgraph or the Subgraphs of others to make indexers aware of its importance and quality. - - This is critical because signaling on a Subgraph incentivizes it to be indexed, meaning it’ll eventually surface on the network to serve queries. ![Explorer Image 2](/img/Subgraph-Details.png) diff --git a/website/src/pages/ja/subgraphs/mcp/claude.mdx b/website/src/pages/ja/subgraphs/mcp/claude.mdx index 8b61438d2ab7..027b272cb942 100644 --- a/website/src/pages/ja/subgraphs/mcp/claude.mdx +++ b/website/src/pages/ja/subgraphs/mcp/claude.mdx @@ -85,7 +85,6 @@ Once you've entered your Gateway API key into your settings, save the file and r 2. **Find the Command Path** After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. - - Navigate to your `subgraph-mcp` directory in terminal - Run `pwd` to get the full path - Combine the output with `/target/release/subgraph-mcp` diff --git a/website/src/pages/ja/subgraphs/quick-start.mdx b/website/src/pages/ja/subgraphs/quick-start.mdx index df410ba8ec9b..6dd752a48355 100644 --- a/website/src/pages/ja/subgraphs/quick-start.mdx +++ b/website/src/pages/ja/subgraphs/quick-start.mdx @@ -166,11 +166,9 @@ To customize your deployment, see [Publishing a Subgraph](/subgraphs/developing/ #### Adding signal to your Subgraph 1. To attract Indexers to query your Subgraph, you should add GRT curation signal to it. - - This action improves quality of service, reduces latency, and enhances network redundancy and availability for your Subgraph. 2. If eligible for indexing rewards, Indexers receive GRT rewards based on the signaled amount. - - It’s recommended to curate at least 3,000 GRT to attract 3 Indexers. Check reward eligibility based on Subgraph feature usage and supported networks. To learn more about curation, read [Curating](/resources/roles/curating/). diff --git a/website/src/pages/ko/archived/arbitrum/arbitrum-faq.mdx b/website/src/pages/ko/archived/arbitrum/arbitrum-faq.mdx index d121f5a2d0f3..270a5f547a74 100644 --- a/website/src/pages/ko/archived/arbitrum/arbitrum-faq.mdx +++ b/website/src/pages/ko/archived/arbitrum/arbitrum-faq.mdx @@ -25,7 +25,6 @@ The Graph’s billing system accepts GRT on Arbitrum, and users will need ETH on Consequently, to pay for queries, you need GRT on Arbitrum. Here are a few different ways to achieve this: - If you already have GRT on Ethereum, you can bridge it to Arbitrum. You can do this via the GRT bridging option provided in Subgraph Studio or by using one of the following bridges: - - [The Arbitrum Bridge](https://bridge.arbitrum.io/?l2ChainId=42161) - [TransferTo](https://transferto.xyz/swap) diff --git a/website/src/pages/ko/indexing/overview.mdx b/website/src/pages/ko/indexing/overview.mdx index fa6c22b77a86..80884f3109c1 100644 --- a/website/src/pages/ko/indexing/overview.mdx +++ b/website/src/pages/ko/indexing/overview.mdx @@ -680,13 +680,11 @@ graph indexer actions execute approve Note that supported action types for allocation management have different input requirements: - `Allocate` - allocate stake to a specific Subgraph deployment - - required action params: - deploymentID - amount - `Unallocate` - close allocation, freeing up the stake to reallocate elsewhere - - required action params: - allocationID - deploymentID @@ -695,7 +693,6 @@ Note that supported action types for allocation management have different input - force (forces using the provided POI even if it doesn’t match what the graph-node provides) - `Reallocate` - atomically close allocation and open a fresh allocation for the same Subgraph deployment - - required action params: - allocationID - deploymentID diff --git a/website/src/pages/ko/indexing/tap.mdx b/website/src/pages/ko/indexing/tap.mdx index 477534d63201..e9667d498e0f 100644 --- a/website/src/pages/ko/indexing/tap.mdx +++ b/website/src/pages/ko/indexing/tap.mdx @@ -38,7 +38,6 @@ As long as you run `tap-agent` and `indexer-agent`, everything will be executed 3. `indexer-agent` takes all the last RAVS and sends redeem requests to the blockchain, which will update the value of `redeem_at`. 4. During the `` period, `indexer-agent` monitors if the blockchain has any reorganizations that revert the transaction. - - If it was reverted, the RAV is resent to the blockchain. If it was not reverted, it gets marked as `final`. ## Blockchain Addresses @@ -77,17 +76,14 @@ The required software version can be found [here](https://github.com/graphprotoc ### Steps 1. **Indexer Agent** - - Follow the [same process](https://github.com/graphprotocol/indexer/pkgs/container/indexer-agent#graph-protocol-indexer-components). - Give the new argument `--tap-subgraph-endpoint` to activate the new GraphTally codepaths and enable redeeming of RAVs. 2. **Indexer Service** - - Fully replace your current configuration with the [new Indexer Service rs](https://github.com/graphprotocol/indexer-rs). It's recommend that you use the [container image](https://github.com/orgs/graphprotocol/packages?repo_name=indexer-rs). - Like the older version, you can scale Indexer Service horizontally easily. It is still stateless. 3. **TAP Agent** - - Run _one_ single instance of [TAP Agent](https://github.com/graphprotocol/indexer-rs) at all times. It's recommend that you use the [container image](https://github.com/orgs/graphprotocol/packages?repo_name=indexer-rs). 4. **Configure Indexer Service and TAP Agent** diff --git a/website/src/pages/ko/resources/glossary.mdx b/website/src/pages/ko/resources/glossary.mdx index 4c5ad55cd0d3..31402db1084a 100644 --- a/website/src/pages/ko/resources/glossary.mdx +++ b/website/src/pages/ko/resources/glossary.mdx @@ -15,7 +15,6 @@ title: Glossary - **Indexer**: Network participants that run indexing nodes to index data from blockchains and serve GraphQL queries. - **Indexer Revenue Streams**: Indexers are rewarded in GRT with two components: query fee rebates and indexing rewards. - 1. **Query Fee Rebates**: Payments from Subgraph consumers for serving queries on the network. 2. **Indexing Rewards**: The rewards that Indexers receive for indexing Subgraphs. Indexing rewards are generated via new issuance of 3% GRT annually. @@ -43,7 +42,6 @@ title: Glossary - **Epoch**: A unit of time within the network. Currently, one epoch is 6,646 blocks or approximately 1 day. - **Allocation**: An Indexer can allocate their total GRT stake (including Delegators' stake) towards Subgraphs that have been published on The Graph's decentralized network. Allocations can have different statuses: - 1. **Active**: An allocation is considered active when it is created onchain. This is called opening an allocation, and indicates to the network that the Indexer is actively indexing and serving queries for a particular Subgraph. Active allocations accrue indexing rewards proportional to the signal on the Subgraph, and the amount of GRT allocated. 2. **Closed**: An Indexer may claim the accrued indexing rewards on a given Subgraph by submitting a recent, and valid, Proof of Indexing (POI). This is known as closing an allocation. An allocation must have been open for a minimum of one epoch before it can be closed. The maximum allocation period is 28 epochs. If an Indexer leaves an allocation open beyond 28 epochs, it is known as a stale allocation. When an allocation is in the **Closed** state, a Fisherman can still open a dispute to challenge an Indexer for serving false data. diff --git a/website/src/pages/ko/resources/roles/delegating/undelegating.mdx b/website/src/pages/ko/resources/roles/delegating/undelegating.mdx index c3e31e653941..9c10e47eb771 100644 --- a/website/src/pages/ko/resources/roles/delegating/undelegating.mdx +++ b/website/src/pages/ko/resources/roles/delegating/undelegating.mdx @@ -13,13 +13,11 @@ Learn how to withdraw your delegated tokens through [Graph Explorer](https://the 1. Visit [Graph Explorer](https://thegraph.com/explorer). Please make sure you're on Explorer and **not** Subgraph Studio. 2. Click on your profile. You can find it on the top right corner of the page. - - Make sure that your wallet is connected. If it's not connected, you will see the "connect" button instead. 3. Once you're in your profile, click on the Delegating tab. In the Delegating tab, you can view the list of Indexers you have delegated to. 4. Click on the Indexer from which you wish to withdraw your tokens. - - Make sure to note the specific Indexer, as you will need to find them again to withdraw. 5. Select the "Undelegate" option by clicking on the three dots next to the Indexer on the right side, see image below: @@ -37,11 +35,9 @@ Learn how to withdraw your delegated tokens through [Graph Explorer](https://the ### Step-by-Step 1. Find your delegation transaction on Arbiscan. - - Here's an [example transaction on Arbiscan](https://arbiscan.io/tx/0xcf2110eac897099f821064445041031efb32786392bdbe7544a4cb7a6b2e4f9a) 2. Navigate to "Transaction Action" where you can find the staking extension contract: - - [This is the staking extension contract for the example listed above](https://arbiscan.io/address/0x00669A4CF01450B64E8A2A20E9b1FCB71E61eF03) 3. Then click on "Contract". ![Contract tab on Arbiscan, between NFT Transfers and Events](/img/arbiscan-contract.png) @@ -59,7 +55,6 @@ Learn how to withdraw your delegated tokens through [Graph Explorer](https://the 9. If you don't know how many tokens you delegated, you can call `getDelegation` on the Read Custom tab. You will need to paste your address (delegator address) and the address of the Indexer that you delegated to, as shown in the following screenshot: ![Both of the addresses needed](/img/get-delegate.png) - - This will return three numbers. The first number is the amount you can unstake. 10. After you have called `unstake`, you can withdraw after approximately 28 epochs (28 days) by calling the `withdraw` function. diff --git a/website/src/pages/ko/subgraphs/best-practices/grafting-hotfix.mdx b/website/src/pages/ko/subgraphs/best-practices/grafting-hotfix.mdx index 674cf6b87c62..591914aca81e 100644 --- a/website/src/pages/ko/subgraphs/best-practices/grafting-hotfix.mdx +++ b/website/src/pages/ko/subgraphs/best-practices/grafting-hotfix.mdx @@ -14,12 +14,10 @@ This feature enables quick deployment of hotfixes for critical issues, eliminati ## Benefits of Grafting for Hotfixes 1. **Rapid Deployment** - - **Minimize Downtime**: When a Subgraph encounters a critical error and stops indexing, grafting enables you to deploy a fix immediately without waiting for re-indexing. - **Immediate Recovery**: The new Subgraph continues from the last indexed block, ensuring that data services remain uninterrupted. 2. **Data Preservation** - - **Reuse Historical Data**: Grafting copies the existing data from the base Subgraph, so you don’t lose valuable historical records. - **Consistency**: Maintains data continuity, which is crucial for applications relying on consistent historical data. @@ -30,19 +28,16 @@ This feature enables quick deployment of hotfixes for critical issues, eliminati ## Best Practices When Using Grafting for Hotfixes 1. **Initial Deployment Without Grafting** - - **Start Clean**: Always deploy your initial Subgraph without grafting to ensure that it’s stable and functions as expected. - **Test Thoroughly**: Validate the Subgraph’s performance to minimize the need for future hotfixes. 2. **Implementing the Hotfix with Grafting** - - **Identify the Issue**: When a critical error occurs, determine the block number of the last successfully indexed event. - **Create a New Subgraph**: Develop a new Subgraph that includes the hotfix. - **Configure Grafting**: Use grafting to copy data up to the identified block number from the failed Subgraph. - **Deploy Quickly**: Publish the grafted Subgraph to restore service as soon as possible. 3. **Post-Hotfix Actions** - - **Monitor Performance**: Ensure the grafted Subgraph is indexing correctly and the hotfix resolves the issue. - **Republish Without Grafting**: Once stable, deploy a new version of the Subgraph without grafting for long-term maintenance. > Note: Relying on grafting indefinitely is not recommended as it can complicate future updates and maintenance. @@ -130,7 +125,6 @@ Suppose you have a Subgraph tracking a smart contract that has stopped indexing - **block**: Block number where grafting should begin. 3. **Deployment Steps** - - **Update the Code**: Implement the hotfix in your mapping scripts (e.g., handleWithdrawal). - **Adjust the Manifest**: As shown above, update the `subgraph.yaml` with grafting configurations. - **Deploy the Subgraph**: diff --git a/website/src/pages/ko/subgraphs/developing/creating/install-the-cli.mdx b/website/src/pages/ko/subgraphs/developing/creating/install-the-cli.mdx index c9d6966ef5fe..904aa6cd172b 100644 --- a/website/src/pages/ko/subgraphs/developing/creating/install-the-cli.mdx +++ b/website/src/pages/ko/subgraphs/developing/creating/install-the-cli.mdx @@ -46,7 +46,6 @@ graph init \ ``` - The command tries to retrieve the contract ABI from Etherscan. - - The Graph CLI relies on a public RPC endpoint. While occasional failures are expected, retries typically resolve this issue. If failures persist, consider using a local ABI. - If any of the optional arguments are missing, it guides you through an interactive form. @@ -87,7 +86,6 @@ Options: The `graph add` command will fetch the ABI from Etherscan (unless an ABI path is specified with the `--abi` option) and creates a new `dataSource`, similar to how the `graph init` command creates a `dataSource` `--from-contract`, updating the schema and mappings accordingly. This allows you to index implementation contracts from their proxy contracts. - The `--merge-entities` option identifies how the developer would like to handle `entity` and `event` name conflicts: - - If `true`: the new `dataSource` should use existing `eventHandlers` & `entities`. - If `false`: a new `entity` & `event` handler should be created with `${dataSourceName}{EventName}`. diff --git a/website/src/pages/ko/subgraphs/developing/managing/deleting-a-subgraph.mdx b/website/src/pages/ko/subgraphs/developing/managing/deleting-a-subgraph.mdx index b8c2330ca49d..f842a0e04ac4 100644 --- a/website/src/pages/ko/subgraphs/developing/managing/deleting-a-subgraph.mdx +++ b/website/src/pages/ko/subgraphs/developing/managing/deleting-a-subgraph.mdx @@ -17,7 +17,6 @@ Delete your Subgraph using [Subgraph Studio](https://thegraph.com/studio/). ![Delete-subgraph](/img/Delete-subgraph.png) 4. Depending on the Subgraph's status, you will be prompted with various options. - - If the Subgraph is not published, simply click “delete” and confirm. - If the Subgraph is published, you will need to confirm on your wallet before the Subgraph can be deleted from Studio. If a Subgraph is published to multiple networks, such as testnet and mainnet, additional steps may be required. diff --git a/website/src/pages/ko/subgraphs/explorer.mdx b/website/src/pages/ko/subgraphs/explorer.mdx index 499fcede88d3..2da8a191ca99 100644 --- a/website/src/pages/ko/subgraphs/explorer.mdx +++ b/website/src/pages/ko/subgraphs/explorer.mdx @@ -26,7 +26,6 @@ When you click into a Subgraph, you will be able to do the following: - Test queries in the playground and be able to leverage network details to make informed decisions. - Signal GRT on your own Subgraph or the Subgraphs of others to make indexers aware of its importance and quality. - - This is critical because signaling on a Subgraph incentivizes it to be indexed, meaning it’ll eventually surface on the network to serve queries. ![Explorer Image 2](/img/Subgraph-Details.png) diff --git a/website/src/pages/ko/subgraphs/mcp/claude.mdx b/website/src/pages/ko/subgraphs/mcp/claude.mdx index 8b61438d2ab7..027b272cb942 100644 --- a/website/src/pages/ko/subgraphs/mcp/claude.mdx +++ b/website/src/pages/ko/subgraphs/mcp/claude.mdx @@ -85,7 +85,6 @@ Once you've entered your Gateway API key into your settings, save the file and r 2. **Find the Command Path** After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. - - Navigate to your `subgraph-mcp` directory in terminal - Run `pwd` to get the full path - Combine the output with `/target/release/subgraph-mcp` diff --git a/website/src/pages/ko/subgraphs/quick-start.mdx b/website/src/pages/ko/subgraphs/quick-start.mdx index a803ac8695fa..3c43e2dc2bb4 100644 --- a/website/src/pages/ko/subgraphs/quick-start.mdx +++ b/website/src/pages/ko/subgraphs/quick-start.mdx @@ -166,11 +166,9 @@ To customize your deployment, see [Publishing a Subgraph](/subgraphs/developing/ #### Adding signal to your Subgraph 1. To attract Indexers to query your Subgraph, you should add GRT curation signal to it. - - This action improves quality of service, reduces latency, and enhances network redundancy and availability for your Subgraph. 2. If eligible for indexing rewards, Indexers receive GRT rewards based on the signaled amount. - - It’s recommended to curate at least 3,000 GRT to attract 3 Indexers. Check reward eligibility based on Subgraph feature usage and supported networks. To learn more about curation, read [Curating](/resources/roles/curating/). diff --git a/website/src/pages/mr/archived/arbitrum/arbitrum-faq.mdx b/website/src/pages/mr/archived/arbitrum/arbitrum-faq.mdx index d121f5a2d0f3..270a5f547a74 100644 --- a/website/src/pages/mr/archived/arbitrum/arbitrum-faq.mdx +++ b/website/src/pages/mr/archived/arbitrum/arbitrum-faq.mdx @@ -25,7 +25,6 @@ The Graph’s billing system accepts GRT on Arbitrum, and users will need ETH on Consequently, to pay for queries, you need GRT on Arbitrum. Here are a few different ways to achieve this: - If you already have GRT on Ethereum, you can bridge it to Arbitrum. You can do this via the GRT bridging option provided in Subgraph Studio or by using one of the following bridges: - - [The Arbitrum Bridge](https://bridge.arbitrum.io/?l2ChainId=42161) - [TransferTo](https://transferto.xyz/swap) diff --git a/website/src/pages/mr/indexing/overview.mdx b/website/src/pages/mr/indexing/overview.mdx index a7a768afd00b..16ccc43f2dd8 100644 --- a/website/src/pages/mr/indexing/overview.mdx +++ b/website/src/pages/mr/indexing/overview.mdx @@ -680,13 +680,11 @@ graph indexer actions execute approve Note that supported action types for allocation management have different input requirements: - `Allocate` - allocate stake to a specific Subgraph deployment - - required action params: - deploymentID - amount - `Unallocate` - close allocation, freeing up the stake to reallocate elsewhere - - required action params: - allocationID - deploymentID @@ -695,7 +693,6 @@ Note that supported action types for allocation management have different input - force (forces using the provided POI even if it doesn’t match what the graph-node provides) - `Reallocate` - atomically close allocation and open a fresh allocation for the same Subgraph deployment - - required action params: - allocationID - deploymentID diff --git a/website/src/pages/mr/indexing/tap.mdx b/website/src/pages/mr/indexing/tap.mdx index dd5401d6e9d5..c82d2fcda6b9 100644 --- a/website/src/pages/mr/indexing/tap.mdx +++ b/website/src/pages/mr/indexing/tap.mdx @@ -38,7 +38,6 @@ As long as you run `tap-agent` and `indexer-agent`, everything will be executed 3. `indexer-agent` takes all the last RAVS and sends redeem requests to the blockchain, which will update the value of `redeem_at`. 4. During the `` period, `indexer-agent` monitors if the blockchain has any reorganizations that revert the transaction. - - If it was reverted, the RAV is resent to the blockchain. If it was not reverted, it gets marked as `final`. ## Blockchain Addresses @@ -77,17 +76,14 @@ The required software version can be found [here](https://github.com/graphprotoc ### Steps 1. **Indexer Agent** - - Follow the [same process](https://github.com/graphprotocol/indexer/pkgs/container/indexer-agent#graph-protocol-indexer-components). - Give the new argument `--tap-subgraph-endpoint` to activate the new GraphTally codepaths and enable redeeming of RAVs. 2. **Indexer Service** - - Fully replace your current configuration with the [new Indexer Service rs](https://github.com/graphprotocol/indexer-rs). It's recommend that you use the [container image](https://github.com/orgs/graphprotocol/packages?repo_name=indexer-rs). - Like the older version, you can scale Indexer Service horizontally easily. It is still stateless. 3. **TAP Agent** - - Run _one_ single instance of [TAP Agent](https://github.com/graphprotocol/indexer-rs) at all times. It's recommend that you use the [container image](https://github.com/orgs/graphprotocol/packages?repo_name=indexer-rs). 4. **Configure Indexer Service and TAP Agent** diff --git a/website/src/pages/mr/resources/glossary.mdx b/website/src/pages/mr/resources/glossary.mdx index 4c5ad55cd0d3..31402db1084a 100644 --- a/website/src/pages/mr/resources/glossary.mdx +++ b/website/src/pages/mr/resources/glossary.mdx @@ -15,7 +15,6 @@ title: Glossary - **Indexer**: Network participants that run indexing nodes to index data from blockchains and serve GraphQL queries. - **Indexer Revenue Streams**: Indexers are rewarded in GRT with two components: query fee rebates and indexing rewards. - 1. **Query Fee Rebates**: Payments from Subgraph consumers for serving queries on the network. 2. **Indexing Rewards**: The rewards that Indexers receive for indexing Subgraphs. Indexing rewards are generated via new issuance of 3% GRT annually. @@ -43,7 +42,6 @@ title: Glossary - **Epoch**: A unit of time within the network. Currently, one epoch is 6,646 blocks or approximately 1 day. - **Allocation**: An Indexer can allocate their total GRT stake (including Delegators' stake) towards Subgraphs that have been published on The Graph's decentralized network. Allocations can have different statuses: - 1. **Active**: An allocation is considered active when it is created onchain. This is called opening an allocation, and indicates to the network that the Indexer is actively indexing and serving queries for a particular Subgraph. Active allocations accrue indexing rewards proportional to the signal on the Subgraph, and the amount of GRT allocated. 2. **Closed**: An Indexer may claim the accrued indexing rewards on a given Subgraph by submitting a recent, and valid, Proof of Indexing (POI). This is known as closing an allocation. An allocation must have been open for a minimum of one epoch before it can be closed. The maximum allocation period is 28 epochs. If an Indexer leaves an allocation open beyond 28 epochs, it is known as a stale allocation. When an allocation is in the **Closed** state, a Fisherman can still open a dispute to challenge an Indexer for serving false data. diff --git a/website/src/pages/mr/resources/roles/delegating/undelegating.mdx b/website/src/pages/mr/resources/roles/delegating/undelegating.mdx index 0f7eee794703..8453ef86806c 100644 --- a/website/src/pages/mr/resources/roles/delegating/undelegating.mdx +++ b/website/src/pages/mr/resources/roles/delegating/undelegating.mdx @@ -13,13 +13,11 @@ Learn how to withdraw your delegated tokens through [Graph Explorer](https://the 1. Visit [Graph Explorer](https://thegraph.com/explorer). Please make sure you're on Explorer and **not** Subgraph Studio. 2. Click on your profile. You can find it on the top right corner of the page. - - Make sure that your wallet is connected. If it's not connected, you will see the "connect" button instead. 3. Once you're in your profile, click on the Delegating tab. In the Delegating tab, you can view the list of Indexers you have delegated to. 4. Click on the Indexer from which you wish to withdraw your tokens. - - Make sure to note the specific Indexer, as you will need to find them again to withdraw. 5. Select the "Undelegate" option by clicking on the three dots next to the Indexer on the right side, see image below: @@ -37,11 +35,9 @@ Learn how to withdraw your delegated tokens through [Graph Explorer](https://the ### Step-by-Step 1. Find your delegation transaction on Arbiscan. - - Here's an [example transaction on Arbiscan](https://arbiscan.io/tx/0xcf2110eac897099f821064445041031efb32786392bdbe7544a4cb7a6b2e4f9a) 2. Navigate to "Transaction Action" where you can find the staking extension contract: - - [This is the staking extension contract for the example listed above](https://arbiscan.io/address/0x00669A4CF01450B64E8A2A20E9b1FCB71E61eF03) 3. Then click on "Contract". ![Contract tab on Arbiscan, between NFT Transfers and Events](/img/arbiscan-contract.png) @@ -59,7 +55,6 @@ Learn how to withdraw your delegated tokens through [Graph Explorer](https://the 9. If you don't know how many tokens you delegated, you can call `getDelegation` on the Read Custom tab. You will need to paste your address (delegator address) and the address of the Indexer that you delegated to, as shown in the following screenshot: ![Both of the addresses needed](/img/get-delegate.png) - - This will return three numbers. The first number is the amount you can unstake. 10. After you have called `unstake`, you can withdraw after approximately 28 epochs (28 days) by calling the `withdraw` function. diff --git a/website/src/pages/mr/subgraphs/best-practices/grafting-hotfix.mdx b/website/src/pages/mr/subgraphs/best-practices/grafting-hotfix.mdx index 63b5d9bbe017..149040721eab 100644 --- a/website/src/pages/mr/subgraphs/best-practices/grafting-hotfix.mdx +++ b/website/src/pages/mr/subgraphs/best-practices/grafting-hotfix.mdx @@ -14,12 +14,10 @@ This feature enables quick deployment of hotfixes for critical issues, eliminati ## Benefits of Grafting for Hotfixes 1. **Rapid Deployment** - - **Minimize Downtime**: When a Subgraph encounters a critical error and stops indexing, grafting enables you to deploy a fix immediately without waiting for re-indexing. - **Immediate Recovery**: The new Subgraph continues from the last indexed block, ensuring that data services remain uninterrupted. 2. **Data Preservation** - - **Reuse Historical Data**: Grafting copies the existing data from the base Subgraph, so you don’t lose valuable historical records. - **Consistency**: Maintains data continuity, which is crucial for applications relying on consistent historical data. @@ -30,19 +28,16 @@ This feature enables quick deployment of hotfixes for critical issues, eliminati ## Best Practices When Using Grafting for Hotfixes 1. **Initial Deployment Without Grafting** - - **Start Clean**: Always deploy your initial Subgraph without grafting to ensure that it’s stable and functions as expected. - **Test Thoroughly**: Validate the Subgraph’s performance to minimize the need for future hotfixes. 2. **Implementing the Hotfix with Grafting** - - **Identify the Issue**: When a critical error occurs, determine the block number of the last successfully indexed event. - **Create a New Subgraph**: Develop a new Subgraph that includes the hotfix. - **Configure Grafting**: Use grafting to copy data up to the identified block number from the failed Subgraph. - **Deploy Quickly**: Publish the grafted Subgraph to restore service as soon as possible. 3. **Post-Hotfix Actions** - - **Monitor Performance**: Ensure the grafted Subgraph is indexing correctly and the hotfix resolves the issue. - **Republish Without Grafting**: Once stable, deploy a new version of the Subgraph without grafting for long-term maintenance. > Note: Relying on grafting indefinitely is not recommended as it can complicate future updates and maintenance. @@ -130,7 +125,6 @@ Suppose you have a Subgraph tracking a smart contract that has stopped indexing - **block**: Block number where grafting should begin. 3. **Deployment Steps** - - **Update the Code**: Implement the hotfix in your mapping scripts (e.g., handleWithdrawal). - **Adjust the Manifest**: As shown above, update the `subgraph.yaml` with grafting configurations. - **Deploy the Subgraph**: diff --git a/website/src/pages/mr/subgraphs/developing/creating/install-the-cli.mdx b/website/src/pages/mr/subgraphs/developing/creating/install-the-cli.mdx index c6892188ddfa..873ab1e0ff29 100644 --- a/website/src/pages/mr/subgraphs/developing/creating/install-the-cli.mdx +++ b/website/src/pages/mr/subgraphs/developing/creating/install-the-cli.mdx @@ -46,7 +46,6 @@ graph init \ ``` - The command tries to retrieve the contract ABI from Etherscan. - - The Graph CLI relies on a public RPC endpoint. While occasional failures are expected, retries typically resolve this issue. If failures persist, consider using a local ABI. - If any of the optional arguments are missing, it guides you through an interactive form. @@ -87,7 +86,6 @@ Options: The `graph add` command will fetch the ABI from Etherscan (unless an ABI path is specified with the `--abi` option) and creates a new `dataSource`, similar to how the `graph init` command creates a `dataSource` `--from-contract`, updating the schema and mappings accordingly. This allows you to index implementation contracts from their proxy contracts. - The `--merge-entities` option identifies how the developer would like to handle `entity` and `event` name conflicts: - - If `true`: the new `dataSource` should use existing `eventHandlers` & `entities`. - If `false`: a new `entity` & `event` handler should be created with `${dataSourceName}{EventName}`. diff --git a/website/src/pages/mr/subgraphs/developing/managing/deleting-a-subgraph.mdx b/website/src/pages/mr/subgraphs/developing/managing/deleting-a-subgraph.mdx index b8c2330ca49d..f842a0e04ac4 100644 --- a/website/src/pages/mr/subgraphs/developing/managing/deleting-a-subgraph.mdx +++ b/website/src/pages/mr/subgraphs/developing/managing/deleting-a-subgraph.mdx @@ -17,7 +17,6 @@ Delete your Subgraph using [Subgraph Studio](https://thegraph.com/studio/). ![Delete-subgraph](/img/Delete-subgraph.png) 4. Depending on the Subgraph's status, you will be prompted with various options. - - If the Subgraph is not published, simply click “delete” and confirm. - If the Subgraph is published, you will need to confirm on your wallet before the Subgraph can be deleted from Studio. If a Subgraph is published to multiple networks, such as testnet and mainnet, additional steps may be required. diff --git a/website/src/pages/mr/subgraphs/explorer.mdx b/website/src/pages/mr/subgraphs/explorer.mdx index afcc80c29f35..594bca73c7de 100644 --- a/website/src/pages/mr/subgraphs/explorer.mdx +++ b/website/src/pages/mr/subgraphs/explorer.mdx @@ -26,7 +26,6 @@ When you click into a Subgraph, you will be able to do the following: - Test queries in the playground and be able to leverage network details to make informed decisions. - Signal GRT on your own Subgraph or the Subgraphs of others to make indexers aware of its importance and quality. - - This is critical because signaling on a Subgraph incentivizes it to be indexed, meaning it’ll eventually surface on the network to serve queries. ![Explorer Image 2](/img/Subgraph-Details.png) diff --git a/website/src/pages/mr/subgraphs/mcp/claude.mdx b/website/src/pages/mr/subgraphs/mcp/claude.mdx index 8b61438d2ab7..027b272cb942 100644 --- a/website/src/pages/mr/subgraphs/mcp/claude.mdx +++ b/website/src/pages/mr/subgraphs/mcp/claude.mdx @@ -85,7 +85,6 @@ Once you've entered your Gateway API key into your settings, save the file and r 2. **Find the Command Path** After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. - - Navigate to your `subgraph-mcp` directory in terminal - Run `pwd` to get the full path - Combine the output with `/target/release/subgraph-mcp` diff --git a/website/src/pages/mr/subgraphs/quick-start.mdx b/website/src/pages/mr/subgraphs/quick-start.mdx index b14954bc11a4..a954833b82b4 100644 --- a/website/src/pages/mr/subgraphs/quick-start.mdx +++ b/website/src/pages/mr/subgraphs/quick-start.mdx @@ -166,11 +166,9 @@ To customize your deployment, see [Publishing a Subgraph](/subgraphs/developing/ #### Adding signal to your Subgraph 1. To attract Indexers to query your Subgraph, you should add GRT curation signal to it. - - This action improves quality of service, reduces latency, and enhances network redundancy and availability for your Subgraph. 2. If eligible for indexing rewards, Indexers receive GRT rewards based on the signaled amount. - - It’s recommended to curate at least 3,000 GRT to attract 3 Indexers. Check reward eligibility based on Subgraph feature usage and supported networks. To learn more about curation, read [Curating](/resources/roles/curating/). diff --git a/website/src/pages/nl/archived/arbitrum/arbitrum-faq.mdx b/website/src/pages/nl/archived/arbitrum/arbitrum-faq.mdx index 0e19e7062073..37098c3462fa 100644 --- a/website/src/pages/nl/archived/arbitrum/arbitrum-faq.mdx +++ b/website/src/pages/nl/archived/arbitrum/arbitrum-faq.mdx @@ -25,7 +25,6 @@ The Graph’s billing system accepts GRT on Arbitrum, and users will need ETH on Consequently, to pay for queries, you need GRT on Arbitrum. Here are a few different ways to achieve this: - If you already have GRT on Ethereum, you can bridge it to Arbitrum. You can do this via the GRT bridging option provided in Subgraph Studio or by using one of the following bridges: - - [The Arbitrum Bridge](https://bridge.arbitrum.io/?l2ChainId=42161) - [TransferTo](https://transferto.xyz/swap) diff --git a/website/src/pages/nl/indexing/overview.mdx b/website/src/pages/nl/indexing/overview.mdx index 8a9a992079b5..73f477411a4b 100644 --- a/website/src/pages/nl/indexing/overview.mdx +++ b/website/src/pages/nl/indexing/overview.mdx @@ -680,13 +680,11 @@ graph indexer actions execute approve Note that supported action types for allocation management have different input requirements: - `Allocate` - allocate stake to a specific Subgraph deployment - - required action params: - deploymentID - amount - `Unallocate` - close allocation, freeing up the stake to reallocate elsewhere - - required action params: - allocationID - deploymentID @@ -695,7 +693,6 @@ Note that supported action types for allocation management have different input - force (forces using the provided POI even if it doesn’t match what the graph-node provides) - `Reallocate` - atomically close allocation and open a fresh allocation for the same Subgraph deployment - - required action params: - allocationID - deploymentID diff --git a/website/src/pages/nl/indexing/tap.mdx b/website/src/pages/nl/indexing/tap.mdx index 477534d63201..e9667d498e0f 100644 --- a/website/src/pages/nl/indexing/tap.mdx +++ b/website/src/pages/nl/indexing/tap.mdx @@ -38,7 +38,6 @@ As long as you run `tap-agent` and `indexer-agent`, everything will be executed 3. `indexer-agent` takes all the last RAVS and sends redeem requests to the blockchain, which will update the value of `redeem_at`. 4. During the `` period, `indexer-agent` monitors if the blockchain has any reorganizations that revert the transaction. - - If it was reverted, the RAV is resent to the blockchain. If it was not reverted, it gets marked as `final`. ## Blockchain Addresses @@ -77,17 +76,14 @@ The required software version can be found [here](https://github.com/graphprotoc ### Steps 1. **Indexer Agent** - - Follow the [same process](https://github.com/graphprotocol/indexer/pkgs/container/indexer-agent#graph-protocol-indexer-components). - Give the new argument `--tap-subgraph-endpoint` to activate the new GraphTally codepaths and enable redeeming of RAVs. 2. **Indexer Service** - - Fully replace your current configuration with the [new Indexer Service rs](https://github.com/graphprotocol/indexer-rs). It's recommend that you use the [container image](https://github.com/orgs/graphprotocol/packages?repo_name=indexer-rs). - Like the older version, you can scale Indexer Service horizontally easily. It is still stateless. 3. **TAP Agent** - - Run _one_ single instance of [TAP Agent](https://github.com/graphprotocol/indexer-rs) at all times. It's recommend that you use the [container image](https://github.com/orgs/graphprotocol/packages?repo_name=indexer-rs). 4. **Configure Indexer Service and TAP Agent** diff --git a/website/src/pages/nl/resources/glossary.mdx b/website/src/pages/nl/resources/glossary.mdx index 4c5ad55cd0d3..31402db1084a 100644 --- a/website/src/pages/nl/resources/glossary.mdx +++ b/website/src/pages/nl/resources/glossary.mdx @@ -15,7 +15,6 @@ title: Glossary - **Indexer**: Network participants that run indexing nodes to index data from blockchains and serve GraphQL queries. - **Indexer Revenue Streams**: Indexers are rewarded in GRT with two components: query fee rebates and indexing rewards. - 1. **Query Fee Rebates**: Payments from Subgraph consumers for serving queries on the network. 2. **Indexing Rewards**: The rewards that Indexers receive for indexing Subgraphs. Indexing rewards are generated via new issuance of 3% GRT annually. @@ -43,7 +42,6 @@ title: Glossary - **Epoch**: A unit of time within the network. Currently, one epoch is 6,646 blocks or approximately 1 day. - **Allocation**: An Indexer can allocate their total GRT stake (including Delegators' stake) towards Subgraphs that have been published on The Graph's decentralized network. Allocations can have different statuses: - 1. **Active**: An allocation is considered active when it is created onchain. This is called opening an allocation, and indicates to the network that the Indexer is actively indexing and serving queries for a particular Subgraph. Active allocations accrue indexing rewards proportional to the signal on the Subgraph, and the amount of GRT allocated. 2. **Closed**: An Indexer may claim the accrued indexing rewards on a given Subgraph by submitting a recent, and valid, Proof of Indexing (POI). This is known as closing an allocation. An allocation must have been open for a minimum of one epoch before it can be closed. The maximum allocation period is 28 epochs. If an Indexer leaves an allocation open beyond 28 epochs, it is known as a stale allocation. When an allocation is in the **Closed** state, a Fisherman can still open a dispute to challenge an Indexer for serving false data. diff --git a/website/src/pages/nl/resources/roles/delegating/undelegating.mdx b/website/src/pages/nl/resources/roles/delegating/undelegating.mdx index c3e31e653941..9c10e47eb771 100644 --- a/website/src/pages/nl/resources/roles/delegating/undelegating.mdx +++ b/website/src/pages/nl/resources/roles/delegating/undelegating.mdx @@ -13,13 +13,11 @@ Learn how to withdraw your delegated tokens through [Graph Explorer](https://the 1. Visit [Graph Explorer](https://thegraph.com/explorer). Please make sure you're on Explorer and **not** Subgraph Studio. 2. Click on your profile. You can find it on the top right corner of the page. - - Make sure that your wallet is connected. If it's not connected, you will see the "connect" button instead. 3. Once you're in your profile, click on the Delegating tab. In the Delegating tab, you can view the list of Indexers you have delegated to. 4. Click on the Indexer from which you wish to withdraw your tokens. - - Make sure to note the specific Indexer, as you will need to find them again to withdraw. 5. Select the "Undelegate" option by clicking on the three dots next to the Indexer on the right side, see image below: @@ -37,11 +35,9 @@ Learn how to withdraw your delegated tokens through [Graph Explorer](https://the ### Step-by-Step 1. Find your delegation transaction on Arbiscan. - - Here's an [example transaction on Arbiscan](https://arbiscan.io/tx/0xcf2110eac897099f821064445041031efb32786392bdbe7544a4cb7a6b2e4f9a) 2. Navigate to "Transaction Action" where you can find the staking extension contract: - - [This is the staking extension contract for the example listed above](https://arbiscan.io/address/0x00669A4CF01450B64E8A2A20E9b1FCB71E61eF03) 3. Then click on "Contract". ![Contract tab on Arbiscan, between NFT Transfers and Events](/img/arbiscan-contract.png) @@ -59,7 +55,6 @@ Learn how to withdraw your delegated tokens through [Graph Explorer](https://the 9. If you don't know how many tokens you delegated, you can call `getDelegation` on the Read Custom tab. You will need to paste your address (delegator address) and the address of the Indexer that you delegated to, as shown in the following screenshot: ![Both of the addresses needed](/img/get-delegate.png) - - This will return three numbers. The first number is the amount you can unstake. 10. After you have called `unstake`, you can withdraw after approximately 28 epochs (28 days) by calling the `withdraw` function. diff --git a/website/src/pages/nl/subgraphs/best-practices/grafting-hotfix.mdx b/website/src/pages/nl/subgraphs/best-practices/grafting-hotfix.mdx index 674cf6b87c62..591914aca81e 100644 --- a/website/src/pages/nl/subgraphs/best-practices/grafting-hotfix.mdx +++ b/website/src/pages/nl/subgraphs/best-practices/grafting-hotfix.mdx @@ -14,12 +14,10 @@ This feature enables quick deployment of hotfixes for critical issues, eliminati ## Benefits of Grafting for Hotfixes 1. **Rapid Deployment** - - **Minimize Downtime**: When a Subgraph encounters a critical error and stops indexing, grafting enables you to deploy a fix immediately without waiting for re-indexing. - **Immediate Recovery**: The new Subgraph continues from the last indexed block, ensuring that data services remain uninterrupted. 2. **Data Preservation** - - **Reuse Historical Data**: Grafting copies the existing data from the base Subgraph, so you don’t lose valuable historical records. - **Consistency**: Maintains data continuity, which is crucial for applications relying on consistent historical data. @@ -30,19 +28,16 @@ This feature enables quick deployment of hotfixes for critical issues, eliminati ## Best Practices When Using Grafting for Hotfixes 1. **Initial Deployment Without Grafting** - - **Start Clean**: Always deploy your initial Subgraph without grafting to ensure that it’s stable and functions as expected. - **Test Thoroughly**: Validate the Subgraph’s performance to minimize the need for future hotfixes. 2. **Implementing the Hotfix with Grafting** - - **Identify the Issue**: When a critical error occurs, determine the block number of the last successfully indexed event. - **Create a New Subgraph**: Develop a new Subgraph that includes the hotfix. - **Configure Grafting**: Use grafting to copy data up to the identified block number from the failed Subgraph. - **Deploy Quickly**: Publish the grafted Subgraph to restore service as soon as possible. 3. **Post-Hotfix Actions** - - **Monitor Performance**: Ensure the grafted Subgraph is indexing correctly and the hotfix resolves the issue. - **Republish Without Grafting**: Once stable, deploy a new version of the Subgraph without grafting for long-term maintenance. > Note: Relying on grafting indefinitely is not recommended as it can complicate future updates and maintenance. @@ -130,7 +125,6 @@ Suppose you have a Subgraph tracking a smart contract that has stopped indexing - **block**: Block number where grafting should begin. 3. **Deployment Steps** - - **Update the Code**: Implement the hotfix in your mapping scripts (e.g., handleWithdrawal). - **Adjust the Manifest**: As shown above, update the `subgraph.yaml` with grafting configurations. - **Deploy the Subgraph**: diff --git a/website/src/pages/nl/subgraphs/developing/creating/install-the-cli.mdx b/website/src/pages/nl/subgraphs/developing/creating/install-the-cli.mdx index 004d0f94c99e..f1716516229e 100644 --- a/website/src/pages/nl/subgraphs/developing/creating/install-the-cli.mdx +++ b/website/src/pages/nl/subgraphs/developing/creating/install-the-cli.mdx @@ -46,7 +46,6 @@ graph init \ ``` - The command tries to retrieve the contract ABI from Etherscan. - - The Graph CLI relies on a public RPC endpoint. While occasional failures are expected, retries typically resolve this issue. If failures persist, consider using a local ABI. - If any of the optional arguments are missing, it guides you through an interactive form. @@ -87,7 +86,6 @@ Options: The `graph add` command will fetch the ABI from Etherscan (unless an ABI path is specified with the `--abi` option) and creates a new `dataSource`, similar to how the `graph init` command creates a `dataSource` `--from-contract`, updating the schema and mappings accordingly. This allows you to index implementation contracts from their proxy contracts. - The `--merge-entities` option identifies how the developer would like to handle `entity` and `event` name conflicts: - - If `true`: the new `dataSource` should use existing `eventHandlers` & `entities`. - If `false`: a new `entity` & `event` handler should be created with `${dataSourceName}{EventName}`. diff --git a/website/src/pages/nl/subgraphs/developing/managing/deleting-a-subgraph.mdx b/website/src/pages/nl/subgraphs/developing/managing/deleting-a-subgraph.mdx index b8c2330ca49d..f842a0e04ac4 100644 --- a/website/src/pages/nl/subgraphs/developing/managing/deleting-a-subgraph.mdx +++ b/website/src/pages/nl/subgraphs/developing/managing/deleting-a-subgraph.mdx @@ -17,7 +17,6 @@ Delete your Subgraph using [Subgraph Studio](https://thegraph.com/studio/). ![Delete-subgraph](/img/Delete-subgraph.png) 4. Depending on the Subgraph's status, you will be prompted with various options. - - If the Subgraph is not published, simply click “delete” and confirm. - If the Subgraph is published, you will need to confirm on your wallet before the Subgraph can be deleted from Studio. If a Subgraph is published to multiple networks, such as testnet and mainnet, additional steps may be required. diff --git a/website/src/pages/nl/subgraphs/explorer.mdx b/website/src/pages/nl/subgraphs/explorer.mdx index 3df0b99d43ca..5265899ab358 100644 --- a/website/src/pages/nl/subgraphs/explorer.mdx +++ b/website/src/pages/nl/subgraphs/explorer.mdx @@ -26,7 +26,6 @@ When you click into a Subgraph, you will be able to do the following: - Test queries in the playground and be able to leverage network details to make informed decisions. - Signal GRT on your own Subgraph or the Subgraphs of others to make indexers aware of its importance and quality. - - This is critical because signaling on a Subgraph incentivizes it to be indexed, meaning it’ll eventually surface on the network to serve queries. ![Explorer Image 2](/img/Subgraph-Details.png) diff --git a/website/src/pages/nl/subgraphs/mcp/claude.mdx b/website/src/pages/nl/subgraphs/mcp/claude.mdx index 8b61438d2ab7..027b272cb942 100644 --- a/website/src/pages/nl/subgraphs/mcp/claude.mdx +++ b/website/src/pages/nl/subgraphs/mcp/claude.mdx @@ -85,7 +85,6 @@ Once you've entered your Gateway API key into your settings, save the file and r 2. **Find the Command Path** After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. - - Navigate to your `subgraph-mcp` directory in terminal - Run `pwd` to get the full path - Combine the output with `/target/release/subgraph-mcp` diff --git a/website/src/pages/nl/subgraphs/quick-start.mdx b/website/src/pages/nl/subgraphs/quick-start.mdx index 7efec0891fa6..60606374b7bc 100644 --- a/website/src/pages/nl/subgraphs/quick-start.mdx +++ b/website/src/pages/nl/subgraphs/quick-start.mdx @@ -166,11 +166,9 @@ To customize your deployment, see [Publishing a Subgraph](/subgraphs/developing/ #### Adding signal to your Subgraph 1. To attract Indexers to query your Subgraph, you should add GRT curation signal to it. - - This action improves quality of service, reduces latency, and enhances network redundancy and availability for your Subgraph. 2. If eligible for indexing rewards, Indexers receive GRT rewards based on the signaled amount. - - It’s recommended to curate at least 3,000 GRT to attract 3 Indexers. Check reward eligibility based on Subgraph feature usage and supported networks. To learn more about curation, read [Curating](/resources/roles/curating/). diff --git a/website/src/pages/pl/archived/arbitrum/arbitrum-faq.mdx b/website/src/pages/pl/archived/arbitrum/arbitrum-faq.mdx index 8322010a2d88..a6f0cebf9105 100644 --- a/website/src/pages/pl/archived/arbitrum/arbitrum-faq.mdx +++ b/website/src/pages/pl/archived/arbitrum/arbitrum-faq.mdx @@ -25,7 +25,6 @@ The Graph’s billing system accepts GRT on Arbitrum, and users will need ETH on Consequently, to pay for queries, you need GRT on Arbitrum. Here are a few different ways to achieve this: - If you already have GRT on Ethereum, you can bridge it to Arbitrum. You can do this via the GRT bridging option provided in Subgraph Studio or by using one of the following bridges: - - [The Arbitrum Bridge](https://bridge.arbitrum.io/?l2ChainId=42161) - [Przeniesienie do](https://transferto.xyz/swap) diff --git a/website/src/pages/pl/indexing/overview.mdx b/website/src/pages/pl/indexing/overview.mdx index fa6c22b77a86..80884f3109c1 100644 --- a/website/src/pages/pl/indexing/overview.mdx +++ b/website/src/pages/pl/indexing/overview.mdx @@ -680,13 +680,11 @@ graph indexer actions execute approve Note that supported action types for allocation management have different input requirements: - `Allocate` - allocate stake to a specific Subgraph deployment - - required action params: - deploymentID - amount - `Unallocate` - close allocation, freeing up the stake to reallocate elsewhere - - required action params: - allocationID - deploymentID @@ -695,7 +693,6 @@ Note that supported action types for allocation management have different input - force (forces using the provided POI even if it doesn’t match what the graph-node provides) - `Reallocate` - atomically close allocation and open a fresh allocation for the same Subgraph deployment - - required action params: - allocationID - deploymentID diff --git a/website/src/pages/pl/indexing/tap.mdx b/website/src/pages/pl/indexing/tap.mdx index 477534d63201..e9667d498e0f 100644 --- a/website/src/pages/pl/indexing/tap.mdx +++ b/website/src/pages/pl/indexing/tap.mdx @@ -38,7 +38,6 @@ As long as you run `tap-agent` and `indexer-agent`, everything will be executed 3. `indexer-agent` takes all the last RAVS and sends redeem requests to the blockchain, which will update the value of `redeem_at`. 4. During the `` period, `indexer-agent` monitors if the blockchain has any reorganizations that revert the transaction. - - If it was reverted, the RAV is resent to the blockchain. If it was not reverted, it gets marked as `final`. ## Blockchain Addresses @@ -77,17 +76,14 @@ The required software version can be found [here](https://github.com/graphprotoc ### Steps 1. **Indexer Agent** - - Follow the [same process](https://github.com/graphprotocol/indexer/pkgs/container/indexer-agent#graph-protocol-indexer-components). - Give the new argument `--tap-subgraph-endpoint` to activate the new GraphTally codepaths and enable redeeming of RAVs. 2. **Indexer Service** - - Fully replace your current configuration with the [new Indexer Service rs](https://github.com/graphprotocol/indexer-rs). It's recommend that you use the [container image](https://github.com/orgs/graphprotocol/packages?repo_name=indexer-rs). - Like the older version, you can scale Indexer Service horizontally easily. It is still stateless. 3. **TAP Agent** - - Run _one_ single instance of [TAP Agent](https://github.com/graphprotocol/indexer-rs) at all times. It's recommend that you use the [container image](https://github.com/orgs/graphprotocol/packages?repo_name=indexer-rs). 4. **Configure Indexer Service and TAP Agent** diff --git a/website/src/pages/pl/resources/glossary.mdx b/website/src/pages/pl/resources/glossary.mdx index 4c5ad55cd0d3..31402db1084a 100644 --- a/website/src/pages/pl/resources/glossary.mdx +++ b/website/src/pages/pl/resources/glossary.mdx @@ -15,7 +15,6 @@ title: Glossary - **Indexer**: Network participants that run indexing nodes to index data from blockchains and serve GraphQL queries. - **Indexer Revenue Streams**: Indexers are rewarded in GRT with two components: query fee rebates and indexing rewards. - 1. **Query Fee Rebates**: Payments from Subgraph consumers for serving queries on the network. 2. **Indexing Rewards**: The rewards that Indexers receive for indexing Subgraphs. Indexing rewards are generated via new issuance of 3% GRT annually. @@ -43,7 +42,6 @@ title: Glossary - **Epoch**: A unit of time within the network. Currently, one epoch is 6,646 blocks or approximately 1 day. - **Allocation**: An Indexer can allocate their total GRT stake (including Delegators' stake) towards Subgraphs that have been published on The Graph's decentralized network. Allocations can have different statuses: - 1. **Active**: An allocation is considered active when it is created onchain. This is called opening an allocation, and indicates to the network that the Indexer is actively indexing and serving queries for a particular Subgraph. Active allocations accrue indexing rewards proportional to the signal on the Subgraph, and the amount of GRT allocated. 2. **Closed**: An Indexer may claim the accrued indexing rewards on a given Subgraph by submitting a recent, and valid, Proof of Indexing (POI). This is known as closing an allocation. An allocation must have been open for a minimum of one epoch before it can be closed. The maximum allocation period is 28 epochs. If an Indexer leaves an allocation open beyond 28 epochs, it is known as a stale allocation. When an allocation is in the **Closed** state, a Fisherman can still open a dispute to challenge an Indexer for serving false data. diff --git a/website/src/pages/pl/resources/roles/delegating/undelegating.mdx b/website/src/pages/pl/resources/roles/delegating/undelegating.mdx index c3e31e653941..9c10e47eb771 100644 --- a/website/src/pages/pl/resources/roles/delegating/undelegating.mdx +++ b/website/src/pages/pl/resources/roles/delegating/undelegating.mdx @@ -13,13 +13,11 @@ Learn how to withdraw your delegated tokens through [Graph Explorer](https://the 1. Visit [Graph Explorer](https://thegraph.com/explorer). Please make sure you're on Explorer and **not** Subgraph Studio. 2. Click on your profile. You can find it on the top right corner of the page. - - Make sure that your wallet is connected. If it's not connected, you will see the "connect" button instead. 3. Once you're in your profile, click on the Delegating tab. In the Delegating tab, you can view the list of Indexers you have delegated to. 4. Click on the Indexer from which you wish to withdraw your tokens. - - Make sure to note the specific Indexer, as you will need to find them again to withdraw. 5. Select the "Undelegate" option by clicking on the three dots next to the Indexer on the right side, see image below: @@ -37,11 +35,9 @@ Learn how to withdraw your delegated tokens through [Graph Explorer](https://the ### Step-by-Step 1. Find your delegation transaction on Arbiscan. - - Here's an [example transaction on Arbiscan](https://arbiscan.io/tx/0xcf2110eac897099f821064445041031efb32786392bdbe7544a4cb7a6b2e4f9a) 2. Navigate to "Transaction Action" where you can find the staking extension contract: - - [This is the staking extension contract for the example listed above](https://arbiscan.io/address/0x00669A4CF01450B64E8A2A20E9b1FCB71E61eF03) 3. Then click on "Contract". ![Contract tab on Arbiscan, between NFT Transfers and Events](/img/arbiscan-contract.png) @@ -59,7 +55,6 @@ Learn how to withdraw your delegated tokens through [Graph Explorer](https://the 9. If you don't know how many tokens you delegated, you can call `getDelegation` on the Read Custom tab. You will need to paste your address (delegator address) and the address of the Indexer that you delegated to, as shown in the following screenshot: ![Both of the addresses needed](/img/get-delegate.png) - - This will return three numbers. The first number is the amount you can unstake. 10. After you have called `unstake`, you can withdraw after approximately 28 epochs (28 days) by calling the `withdraw` function. diff --git a/website/src/pages/pl/subgraphs/best-practices/grafting-hotfix.mdx b/website/src/pages/pl/subgraphs/best-practices/grafting-hotfix.mdx index 674cf6b87c62..591914aca81e 100644 --- a/website/src/pages/pl/subgraphs/best-practices/grafting-hotfix.mdx +++ b/website/src/pages/pl/subgraphs/best-practices/grafting-hotfix.mdx @@ -14,12 +14,10 @@ This feature enables quick deployment of hotfixes for critical issues, eliminati ## Benefits of Grafting for Hotfixes 1. **Rapid Deployment** - - **Minimize Downtime**: When a Subgraph encounters a critical error and stops indexing, grafting enables you to deploy a fix immediately without waiting for re-indexing. - **Immediate Recovery**: The new Subgraph continues from the last indexed block, ensuring that data services remain uninterrupted. 2. **Data Preservation** - - **Reuse Historical Data**: Grafting copies the existing data from the base Subgraph, so you don’t lose valuable historical records. - **Consistency**: Maintains data continuity, which is crucial for applications relying on consistent historical data. @@ -30,19 +28,16 @@ This feature enables quick deployment of hotfixes for critical issues, eliminati ## Best Practices When Using Grafting for Hotfixes 1. **Initial Deployment Without Grafting** - - **Start Clean**: Always deploy your initial Subgraph without grafting to ensure that it’s stable and functions as expected. - **Test Thoroughly**: Validate the Subgraph’s performance to minimize the need for future hotfixes. 2. **Implementing the Hotfix with Grafting** - - **Identify the Issue**: When a critical error occurs, determine the block number of the last successfully indexed event. - **Create a New Subgraph**: Develop a new Subgraph that includes the hotfix. - **Configure Grafting**: Use grafting to copy data up to the identified block number from the failed Subgraph. - **Deploy Quickly**: Publish the grafted Subgraph to restore service as soon as possible. 3. **Post-Hotfix Actions** - - **Monitor Performance**: Ensure the grafted Subgraph is indexing correctly and the hotfix resolves the issue. - **Republish Without Grafting**: Once stable, deploy a new version of the Subgraph without grafting for long-term maintenance. > Note: Relying on grafting indefinitely is not recommended as it can complicate future updates and maintenance. @@ -130,7 +125,6 @@ Suppose you have a Subgraph tracking a smart contract that has stopped indexing - **block**: Block number where grafting should begin. 3. **Deployment Steps** - - **Update the Code**: Implement the hotfix in your mapping scripts (e.g., handleWithdrawal). - **Adjust the Manifest**: As shown above, update the `subgraph.yaml` with grafting configurations. - **Deploy the Subgraph**: diff --git a/website/src/pages/pl/subgraphs/developing/creating/install-the-cli.mdx b/website/src/pages/pl/subgraphs/developing/creating/install-the-cli.mdx index 112f0952a1e8..0e3373511b8b 100644 --- a/website/src/pages/pl/subgraphs/developing/creating/install-the-cli.mdx +++ b/website/src/pages/pl/subgraphs/developing/creating/install-the-cli.mdx @@ -46,7 +46,6 @@ graph init \ ``` - The command tries to retrieve the contract ABI from Etherscan. - - The Graph CLI relies on a public RPC endpoint. While occasional failures are expected, retries typically resolve this issue. If failures persist, consider using a local ABI. - If any of the optional arguments are missing, it guides you through an interactive form. @@ -87,7 +86,6 @@ Options: The `graph add` command will fetch the ABI from Etherscan (unless an ABI path is specified with the `--abi` option) and creates a new `dataSource`, similar to how the `graph init` command creates a `dataSource` `--from-contract`, updating the schema and mappings accordingly. This allows you to index implementation contracts from their proxy contracts. - The `--merge-entities` option identifies how the developer would like to handle `entity` and `event` name conflicts: - - If `true`: the new `dataSource` should use existing `eventHandlers` & `entities`. - If `false`: a new `entity` & `event` handler should be created with `${dataSourceName}{EventName}`. diff --git a/website/src/pages/pl/subgraphs/developing/managing/deleting-a-subgraph.mdx b/website/src/pages/pl/subgraphs/developing/managing/deleting-a-subgraph.mdx index b8c2330ca49d..f842a0e04ac4 100644 --- a/website/src/pages/pl/subgraphs/developing/managing/deleting-a-subgraph.mdx +++ b/website/src/pages/pl/subgraphs/developing/managing/deleting-a-subgraph.mdx @@ -17,7 +17,6 @@ Delete your Subgraph using [Subgraph Studio](https://thegraph.com/studio/). ![Delete-subgraph](/img/Delete-subgraph.png) 4. Depending on the Subgraph's status, you will be prompted with various options. - - If the Subgraph is not published, simply click “delete” and confirm. - If the Subgraph is published, you will need to confirm on your wallet before the Subgraph can be deleted from Studio. If a Subgraph is published to multiple networks, such as testnet and mainnet, additional steps may be required. diff --git a/website/src/pages/pl/subgraphs/explorer.mdx b/website/src/pages/pl/subgraphs/explorer.mdx index 499fcede88d3..2da8a191ca99 100644 --- a/website/src/pages/pl/subgraphs/explorer.mdx +++ b/website/src/pages/pl/subgraphs/explorer.mdx @@ -26,7 +26,6 @@ When you click into a Subgraph, you will be able to do the following: - Test queries in the playground and be able to leverage network details to make informed decisions. - Signal GRT on your own Subgraph or the Subgraphs of others to make indexers aware of its importance and quality. - - This is critical because signaling on a Subgraph incentivizes it to be indexed, meaning it’ll eventually surface on the network to serve queries. ![Explorer Image 2](/img/Subgraph-Details.png) diff --git a/website/src/pages/pl/subgraphs/mcp/claude.mdx b/website/src/pages/pl/subgraphs/mcp/claude.mdx index 8b61438d2ab7..027b272cb942 100644 --- a/website/src/pages/pl/subgraphs/mcp/claude.mdx +++ b/website/src/pages/pl/subgraphs/mcp/claude.mdx @@ -85,7 +85,6 @@ Once you've entered your Gateway API key into your settings, save the file and r 2. **Find the Command Path** After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. - - Navigate to your `subgraph-mcp` directory in terminal - Run `pwd` to get the full path - Combine the output with `/target/release/subgraph-mcp` diff --git a/website/src/pages/pl/subgraphs/quick-start.mdx b/website/src/pages/pl/subgraphs/quick-start.mdx index 62c69977491f..66150bc55821 100644 --- a/website/src/pages/pl/subgraphs/quick-start.mdx +++ b/website/src/pages/pl/subgraphs/quick-start.mdx @@ -166,11 +166,9 @@ To customize your deployment, see [Publishing a Subgraph](/subgraphs/developing/ #### Adding signal to your Subgraph 1. To attract Indexers to query your Subgraph, you should add GRT curation signal to it. - - This action improves quality of service, reduces latency, and enhances network redundancy and availability for your Subgraph. 2. If eligible for indexing rewards, Indexers receive GRT rewards based on the signaled amount. - - It’s recommended to curate at least 3,000 GRT to attract 3 Indexers. Check reward eligibility based on Subgraph feature usage and supported networks. To learn more about curation, read [Curating](/resources/roles/curating/). diff --git a/website/src/pages/pt/archived/arbitrum/arbitrum-faq.mdx b/website/src/pages/pt/archived/arbitrum/arbitrum-faq.mdx index 7932ad2508bd..8d4c8eb00e8b 100644 --- a/website/src/pages/pt/archived/arbitrum/arbitrum-faq.mdx +++ b/website/src/pages/pt/archived/arbitrum/arbitrum-faq.mdx @@ -25,7 +25,6 @@ O sistema de cobranças do The Graph aceita GRT no Arbitrum, e os utilizadores p Portanto, para pagar por queries, é necessário GRT no Arbitrum. Aqui estão algumas maneiras diferentes de consegui-lo: - Caso já tenha GRT no Ethereum, é possível enviá-lo ao Arbitrum via bridge. Isto é possível via a opção de bridging de GRT providenciada no Subgraph Studio ou uma das seguintes bridges: - - [Bridge no Arbitrum](https://bridge.arbitrum.io/?l2ChainId=42161) - [TransferTo](https://transferto.xyz/swap) diff --git a/website/src/pages/pt/indexing/overview.mdx b/website/src/pages/pt/indexing/overview.mdx index db2298351ab2..acbcf278812b 100644 --- a/website/src/pages/pt/indexing/overview.mdx +++ b/website/src/pages/pt/indexing/overview.mdx @@ -680,13 +680,11 @@ graph indexer actions execute approve Observe que os tipos apoiados de ações para gestão de alocação têm requisitos diferentes de entrada: - `Allocate` — aloca stakes a uma implantação de subgraph específica - - parâmetros de ação exigidos: - deploymentID - amount - `Unallocate` — fecha uma alocação, que libera o stake para ser redistribuído em outro lugar - - parâmetros de ação exigidos: - allocationID - deploymentID @@ -695,7 +693,6 @@ Observe que os tipos apoiados de ações para gestão de alocação têm requisi - force (força o uso do POI providenciado, mesmo se ele não corresponder ao providenciado pelo graph-node) - `Reallocate` — fecha a alocação automaticamente e abre uma alocação nova para a mesma implantação de subgraph - - parâmetros de ação exigidos: - allocationID - deploymentID diff --git a/website/src/pages/pt/indexing/tap.mdx b/website/src/pages/pt/indexing/tap.mdx index 197d8757b967..0122b49bf2d8 100644 --- a/website/src/pages/pt/indexing/tap.mdx +++ b/website/src/pages/pt/indexing/tap.mdx @@ -38,7 +38,6 @@ Tudo será executado automaticamente enquanto `tap-agent` e `indexer-agent` fore 3. O `indexer-agent` pega todos os últimos RAVs e manda solicitações de resgate à blockchain, que atualizará o valor de `redeem-at`. 4. Durante o período de ``, o `indexer-agent` monitora se a blockchain tem reorganizações que possam reverter a transação. - - Se revertida, o RAV é reenviado à blockchain. Se não for revertida, é marcada como `final`. ## Endereços de Blockchain @@ -77,17 +76,14 @@ O software necessário está [aqui](https://github.com/graphprotocol/indexer/blo ### Passo a passo 1. **Agente Indexador** - - Siga o [mesmo processo](https://github.com/graphprotocol/indexer/pkgs/container/indexer-agent#graph-protocol-indexer-components). - Give the new argument `--tap-subgraph-endpoint` to activate the new GraphTally codepaths and enable redeeming of RAVs. 2. **Serviço Indexador** - - Substitua a sua configuração atual com o novo [rs do Serviço Indexador](https://github.com/graphprotocol/indexer-rs). Vale apena usar a [imagem recipiente](https://github.com/orgs/graphprotocol/packages?repo_name=indexer-rs). - Assim como a versão mais antiga, o Serviço Indexador pode ser horizontalmente escalado com facilidade. Neste caso, ainda não mantém memória. 3. **Agente do TAP** - - Execute _uma_ instância do [Agente do TAP](https://github.com/graphprotocol/indexer-rs) constantemente. Recomendamos usar a [imagem recipiente](https://github.com/orgs/graphprotocol/packages?repo_name=indexer-rs). 4. **Configuração do Serviço Indexador e Agente do TAP** diff --git a/website/src/pages/pt/resources/glossary.mdx b/website/src/pages/pt/resources/glossary.mdx index d075e63e2c25..279c2ce20c7d 100644 --- a/website/src/pages/pt/resources/glossary.mdx +++ b/website/src/pages/pt/resources/glossary.mdx @@ -15,7 +15,6 @@ title: Glossário - **Indexador**: Um participante da rede que executa nodes de indexação para indexar dados de blockchains e servir queries da GraphQL. - **Fluxos de Receita de Indexadores:** Os Indexadores são recompensados em GRT com dois componentes: Rebates de taxa de query e recompensas de indexação. - 1. **Query Fee Rebates**: Payments from Subgraph consumers for serving queries on the network. 2. **Indexing Rewards**: The rewards that Indexers receive for indexing Subgraphs. Indexing rewards are generated via new issuance of 3% GRT annually. @@ -43,7 +42,6 @@ title: Glossário - **Epoch:** Uma unidade de tempo na rede. Um epoch atualmente dura 6.646 blocos, ou cerca de um dia. - **Allocation**: An Indexer can allocate their total GRT stake (including Delegators' stake) towards Subgraphs that have been published on The Graph's decentralized network. Allocations can have different statuses: - 1. **Active**: An allocation is considered active when it is created onchain. This is called opening an allocation, and indicates to the network that the Indexer is actively indexing and serving queries for a particular Subgraph. Active allocations accrue indexing rewards proportional to the signal on the Subgraph, and the amount of GRT allocated. 2. **Closed**: An Indexer may claim the accrued indexing rewards on a given Subgraph by submitting a recent, and valid, Proof of Indexing (POI). This is known as closing an allocation. An allocation must have been open for a minimum of one epoch before it can be closed. The maximum allocation period is 28 epochs. If an Indexer leaves an allocation open beyond 28 epochs, it is known as a stale allocation. When an allocation is in the **Closed** state, a Fisherman can still open a dispute to challenge an Indexer for serving false data. diff --git a/website/src/pages/pt/resources/roles/delegating/undelegating.mdx b/website/src/pages/pt/resources/roles/delegating/undelegating.mdx index b2e3239a5ae3..8a07458d3797 100644 --- a/website/src/pages/pt/resources/roles/delegating/undelegating.mdx +++ b/website/src/pages/pt/resources/roles/delegating/undelegating.mdx @@ -13,13 +13,11 @@ Aprenda como retirar os seus tokens delegados através do [Graph Explorer](https 1. Visite o [Graph Explorer](https://thegraph.com/explorer). Certifique-se que está no Explorer, e **não** no Subgraph Studio. 2. Clique no seu perfil, no canto superior direito da página. - - Verifique se a sua carteira está conectada. Se não estiver, o botão "connect" (conectar) aparecerá no lugar. 3. Já no seu perfil, clique na aba "Delegating" (Delegação). Nessa aba, é possível visualizar a lista de Indexadores para os quais já delegou. 4. Clique no indexador do qual deseja retirar os seus tokens. - - Indique o Indexador específico, pois ele terá que ser encontrado novamente para fazer a retirada. 5. Selecione a opção "Undelegate" (Retirar Delegação) nos três pontos ao lado do Indexador, ao lado direito. Conforme a imagem abaixo: @@ -37,11 +35,9 @@ Aprenda como retirar os seus tokens delegados através do [Graph Explorer](https ### Passo a Passo 1. Encontre a sua transação de delegação no Arbiscan. - - Aqui está um [exemplo de transação pelo Arbiscan](https://arbiscan.io/tx/0xcf2110eac897099f821064445041031efb32786392bdbe7544a4cb7a6b2e4f9a) 2. Navegue até "Transaction Action" (Ação de Transação), onde poderá encontrar o contrato da extensão de staking: - - [Este é o contrato de extensão de staking do exemplo listado acima](https://arbiscan.io/address/0x00669A4CF01450B64E8A2A20E9b1FCB71E61eF03) 3. Em seguida, clique em "Contract" (Contrato). ![Aba de contrato no Arbiscan, entre NFT Transfers (Transferências de NFT) e Events (Eventos)](/img/arbiscan-contract.png) @@ -59,7 +55,6 @@ Aprenda como retirar os seus tokens delegados através do [Graph Explorer](https 9. Se não souber quantos tokens delegou, chame `getDelegation` na aba "Read Custom" (Ler Personalização). Será necessário colar tanto o seu endereço (endereço de delegante) quanto o do indexador para o qual você delegou, conforme na seguinte imagem: ![Ambos os endereços necessários](/img/get-delegate.png) - - Isto retornará três números. O primeiro número é a quantidade de staking que você pode retirar. 10. Após chamar `unstake`, você pode retirar o stake após, em média, 28 epochs (28 dias) com a função `withdraw`. diff --git a/website/src/pages/pt/subgraphs/best-practices/grafting-hotfix.mdx b/website/src/pages/pt/subgraphs/best-practices/grafting-hotfix.mdx index 1bb1297526e7..a96bb4b738ad 100644 --- a/website/src/pages/pt/subgraphs/best-practices/grafting-hotfix.mdx +++ b/website/src/pages/pt/subgraphs/best-practices/grafting-hotfix.mdx @@ -14,12 +14,10 @@ This feature enables quick deployment of hotfixes for critical issues, eliminati ## Benefícios de Enxertos para Hotfixes 1. **Lançamento Rápido** - - **Minimize Downtime**: When a Subgraph encounters a critical error and stops indexing, grafting enables you to deploy a fix immediately without waiting for re-indexing. - **Immediate Recovery**: The new Subgraph continues from the last indexed block, ensuring that data services remain uninterrupted. 2. **Preservação de Dados** - - **Reuse Historical Data**: Grafting copies the existing data from the base Subgraph, so you don’t lose valuable historical records. - **Consistência**: Mantém a continuidade de dados, que é crucial para aplicativos que dependem de dados históricos consistentes. @@ -30,19 +28,16 @@ This feature enables quick deployment of hotfixes for critical issues, eliminati ## Melhores Práticas ao Usar Enxertos para Hotfixes 1. \*Implantação Inicial sem Enxerto\*\* - - **Start Clean**: Always deploy your initial Subgraph without grafting to ensure that it’s stable and functions as expected. - **Test Thoroughly**: Validate the Subgraph’s performance to minimize the need for future hotfixes. 2. **Implementação do Hotfix com Enxerto** - - **Identificar o Problema**: Quando ocorrer um erro crítico, determine o número de bloco do último evento indexado com êxito. - **Create a New Subgraph**: Develop a new Subgraph that includes the hotfix. - **Configure Grafting**: Use grafting to copy data up to the identified block number from the failed Subgraph. - **Deploy Quickly**: Publish the grafted Subgraph to restore service as soon as possible. 3. **Depois do Hotfix** - - **Monitor Performance**: Ensure the grafted Subgraph is indexing correctly and the hotfix resolves the issue. - **Republish Without Grafting**: Once stable, deploy a new version of the Subgraph without grafting for long-term maintenance. > Nota: Não é recomendado depender de enxertos indefinidamente, pois isto pode complicar a manutenção e implantação de futuras atualizações. @@ -130,7 +125,6 @@ Suppose you have a Subgraph tracking a smart contract that has stopped indexing - **block**: Número de blocos onde o enxerto deve começar. 3. **Etapas de Implantação** - - **Atualize o Código**: Implemente o hotfix nos seus scripts de mapeamento (por exemplo, handleWithdrawal). - **Ajuste o Manifest**: Conforme detalhado acima, atualize o `subgraph.yaml` com configurações de enxerto. - **Lance o Subgraph**: diff --git a/website/src/pages/pt/subgraphs/developing/creating/install-the-cli.mdx b/website/src/pages/pt/subgraphs/developing/creating/install-the-cli.mdx index ee2f14a8e76f..6f157fc47734 100644 --- a/website/src/pages/pt/subgraphs/developing/creating/install-the-cli.mdx +++ b/website/src/pages/pt/subgraphs/developing/creating/install-the-cli.mdx @@ -46,7 +46,6 @@ graph init \ ``` - O comando tenta resgatar o contrato da ABI do Etherscan. - - A CLI do The Graph depende de um endpoint público de RPC. Enquanto falhas ocasionais são de se esperar, basta tentar de novo para resolver. Se as falhas persistirem, considere usar uma ABI local. - Se faltar algum dos argumentos opcionais, você será guiado para um formulário interativo. @@ -87,7 +86,6 @@ Opções: O comando `graph add` pegará a ABI do Etherscan (a não ser que um local de ABI seja especificado com a opção --abi), e criará um novo `dataSource` da mesma maneira que o comando `graph init` cria um `dataSource` `--from-contract`, assim atualizando o schema e os mapeamentos de acordo. - A opção `--merge entities` identifica como o programador gostaria de lidar com conflitos de nome em `entity` e `event`: - - Se for `true`: o novo `dataSource` deve usar `eventHandlers` e `entities` existentes. - Se for `false`: um novo handler de `entity` e `event` deve ser criado com `${dataSourceName}{EventName}`. diff --git a/website/src/pages/pt/subgraphs/developing/managing/deleting-a-subgraph.mdx b/website/src/pages/pt/subgraphs/developing/managing/deleting-a-subgraph.mdx index 49cb207e435e..bf7defbc7203 100644 --- a/website/src/pages/pt/subgraphs/developing/managing/deleting-a-subgraph.mdx +++ b/website/src/pages/pt/subgraphs/developing/managing/deleting-a-subgraph.mdx @@ -17,7 +17,6 @@ Delete your Subgraph using [Subgraph Studio](https://thegraph.com/studio/). ![Delete-subgraph](/img/Delete-subgraph.png) 4. Depending on the Subgraph's status, you will be prompted with various options. - - If the Subgraph is not published, simply click “delete” and confirm. - If the Subgraph is published, you will need to confirm on your wallet before the Subgraph can be deleted from Studio. If a Subgraph is published to multiple networks, such as testnet and mainnet, additional steps may be required. diff --git a/website/src/pages/pt/subgraphs/explorer.mdx b/website/src/pages/pt/subgraphs/explorer.mdx index c1681cf69573..8c1aa2e7b087 100644 --- a/website/src/pages/pt/subgraphs/explorer.mdx +++ b/website/src/pages/pt/subgraphs/explorer.mdx @@ -26,7 +26,6 @@ Ao clicar em um subgraph, será possível: - Testar queries na área de testes e aproveitar detalhes de rede para fazer decisões informadas. - Sinalizar GRT no seu próprio subgraph, ou nos subgraphs de outros, para avisar os indexadores sobre a sua importância e qualidade. - - Isto é importante, porque sinalizar em um subgraph incentiva a sua indexação; ou seja, ele aparecerá em breve na rede para servir queries. ![Imagem do Explorer 2](/img/Subgraph-Details.png) diff --git a/website/src/pages/pt/subgraphs/mcp/claude.mdx b/website/src/pages/pt/subgraphs/mcp/claude.mdx index 8b61438d2ab7..027b272cb942 100644 --- a/website/src/pages/pt/subgraphs/mcp/claude.mdx +++ b/website/src/pages/pt/subgraphs/mcp/claude.mdx @@ -85,7 +85,6 @@ Once you've entered your Gateway API key into your settings, save the file and r 2. **Find the Command Path** After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. - - Navigate to your `subgraph-mcp` directory in terminal - Run `pwd` to get the full path - Combine the output with `/target/release/subgraph-mcp` diff --git a/website/src/pages/pt/subgraphs/quick-start.mdx b/website/src/pages/pt/subgraphs/quick-start.mdx index 9fda78533084..202d85b0875c 100644 --- a/website/src/pages/pt/subgraphs/quick-start.mdx +++ b/website/src/pages/pt/subgraphs/quick-start.mdx @@ -166,11 +166,9 @@ Para personalizar a sua implantação, veja [Como Editar um Subgraph](/subgraphs #### Adding signal to your Subgraph 1. Para atrair Indexadores de modo a fazer queries no seu subgraph, adicione um sinal de curadoria de GRT a ele. - - Isto melhora a qualidade do serviço, reduz a latência, e aprimora a redundância e a disponibilidade da rede para o seu subgraph. 2. Se tiverem direito a recompensas por indexação, os Indexadores recebem recompensas em GRT com base na quantia sinalizada. - - Recomendamos curar pelo menos 3.000 GRT para atrair 3 Indexadores. Verifique a elegibilidade de recompensas com base no uso de funções do subgraph e nas redes apoiadas. Para saber mais sobre curadoria, clique [aqui](/resources/roles/curating/). diff --git a/website/src/pages/ro/archived/arbitrum/arbitrum-faq.mdx b/website/src/pages/ro/archived/arbitrum/arbitrum-faq.mdx index d121f5a2d0f3..270a5f547a74 100644 --- a/website/src/pages/ro/archived/arbitrum/arbitrum-faq.mdx +++ b/website/src/pages/ro/archived/arbitrum/arbitrum-faq.mdx @@ -25,7 +25,6 @@ The Graph’s billing system accepts GRT on Arbitrum, and users will need ETH on Consequently, to pay for queries, you need GRT on Arbitrum. Here are a few different ways to achieve this: - If you already have GRT on Ethereum, you can bridge it to Arbitrum. You can do this via the GRT bridging option provided in Subgraph Studio or by using one of the following bridges: - - [The Arbitrum Bridge](https://bridge.arbitrum.io/?l2ChainId=42161) - [TransferTo](https://transferto.xyz/swap) diff --git a/website/src/pages/ro/indexing/overview.mdx b/website/src/pages/ro/indexing/overview.mdx index fa6c22b77a86..80884f3109c1 100644 --- a/website/src/pages/ro/indexing/overview.mdx +++ b/website/src/pages/ro/indexing/overview.mdx @@ -680,13 +680,11 @@ graph indexer actions execute approve Note that supported action types for allocation management have different input requirements: - `Allocate` - allocate stake to a specific Subgraph deployment - - required action params: - deploymentID - amount - `Unallocate` - close allocation, freeing up the stake to reallocate elsewhere - - required action params: - allocationID - deploymentID @@ -695,7 +693,6 @@ Note that supported action types for allocation management have different input - force (forces using the provided POI even if it doesn’t match what the graph-node provides) - `Reallocate` - atomically close allocation and open a fresh allocation for the same Subgraph deployment - - required action params: - allocationID - deploymentID diff --git a/website/src/pages/ro/indexing/tap.mdx b/website/src/pages/ro/indexing/tap.mdx index 477534d63201..e9667d498e0f 100644 --- a/website/src/pages/ro/indexing/tap.mdx +++ b/website/src/pages/ro/indexing/tap.mdx @@ -38,7 +38,6 @@ As long as you run `tap-agent` and `indexer-agent`, everything will be executed 3. `indexer-agent` takes all the last RAVS and sends redeem requests to the blockchain, which will update the value of `redeem_at`. 4. During the `` period, `indexer-agent` monitors if the blockchain has any reorganizations that revert the transaction. - - If it was reverted, the RAV is resent to the blockchain. If it was not reverted, it gets marked as `final`. ## Blockchain Addresses @@ -77,17 +76,14 @@ The required software version can be found [here](https://github.com/graphprotoc ### Steps 1. **Indexer Agent** - - Follow the [same process](https://github.com/graphprotocol/indexer/pkgs/container/indexer-agent#graph-protocol-indexer-components). - Give the new argument `--tap-subgraph-endpoint` to activate the new GraphTally codepaths and enable redeeming of RAVs. 2. **Indexer Service** - - Fully replace your current configuration with the [new Indexer Service rs](https://github.com/graphprotocol/indexer-rs). It's recommend that you use the [container image](https://github.com/orgs/graphprotocol/packages?repo_name=indexer-rs). - Like the older version, you can scale Indexer Service horizontally easily. It is still stateless. 3. **TAP Agent** - - Run _one_ single instance of [TAP Agent](https://github.com/graphprotocol/indexer-rs) at all times. It's recommend that you use the [container image](https://github.com/orgs/graphprotocol/packages?repo_name=indexer-rs). 4. **Configure Indexer Service and TAP Agent** diff --git a/website/src/pages/ro/resources/glossary.mdx b/website/src/pages/ro/resources/glossary.mdx index 4c5ad55cd0d3..31402db1084a 100644 --- a/website/src/pages/ro/resources/glossary.mdx +++ b/website/src/pages/ro/resources/glossary.mdx @@ -15,7 +15,6 @@ title: Glossary - **Indexer**: Network participants that run indexing nodes to index data from blockchains and serve GraphQL queries. - **Indexer Revenue Streams**: Indexers are rewarded in GRT with two components: query fee rebates and indexing rewards. - 1. **Query Fee Rebates**: Payments from Subgraph consumers for serving queries on the network. 2. **Indexing Rewards**: The rewards that Indexers receive for indexing Subgraphs. Indexing rewards are generated via new issuance of 3% GRT annually. @@ -43,7 +42,6 @@ title: Glossary - **Epoch**: A unit of time within the network. Currently, one epoch is 6,646 blocks or approximately 1 day. - **Allocation**: An Indexer can allocate their total GRT stake (including Delegators' stake) towards Subgraphs that have been published on The Graph's decentralized network. Allocations can have different statuses: - 1. **Active**: An allocation is considered active when it is created onchain. This is called opening an allocation, and indicates to the network that the Indexer is actively indexing and serving queries for a particular Subgraph. Active allocations accrue indexing rewards proportional to the signal on the Subgraph, and the amount of GRT allocated. 2. **Closed**: An Indexer may claim the accrued indexing rewards on a given Subgraph by submitting a recent, and valid, Proof of Indexing (POI). This is known as closing an allocation. An allocation must have been open for a minimum of one epoch before it can be closed. The maximum allocation period is 28 epochs. If an Indexer leaves an allocation open beyond 28 epochs, it is known as a stale allocation. When an allocation is in the **Closed** state, a Fisherman can still open a dispute to challenge an Indexer for serving false data. diff --git a/website/src/pages/ro/resources/roles/delegating/undelegating.mdx b/website/src/pages/ro/resources/roles/delegating/undelegating.mdx index c3e31e653941..9c10e47eb771 100644 --- a/website/src/pages/ro/resources/roles/delegating/undelegating.mdx +++ b/website/src/pages/ro/resources/roles/delegating/undelegating.mdx @@ -13,13 +13,11 @@ Learn how to withdraw your delegated tokens through [Graph Explorer](https://the 1. Visit [Graph Explorer](https://thegraph.com/explorer). Please make sure you're on Explorer and **not** Subgraph Studio. 2. Click on your profile. You can find it on the top right corner of the page. - - Make sure that your wallet is connected. If it's not connected, you will see the "connect" button instead. 3. Once you're in your profile, click on the Delegating tab. In the Delegating tab, you can view the list of Indexers you have delegated to. 4. Click on the Indexer from which you wish to withdraw your tokens. - - Make sure to note the specific Indexer, as you will need to find them again to withdraw. 5. Select the "Undelegate" option by clicking on the three dots next to the Indexer on the right side, see image below: @@ -37,11 +35,9 @@ Learn how to withdraw your delegated tokens through [Graph Explorer](https://the ### Step-by-Step 1. Find your delegation transaction on Arbiscan. - - Here's an [example transaction on Arbiscan](https://arbiscan.io/tx/0xcf2110eac897099f821064445041031efb32786392bdbe7544a4cb7a6b2e4f9a) 2. Navigate to "Transaction Action" where you can find the staking extension contract: - - [This is the staking extension contract for the example listed above](https://arbiscan.io/address/0x00669A4CF01450B64E8A2A20E9b1FCB71E61eF03) 3. Then click on "Contract". ![Contract tab on Arbiscan, between NFT Transfers and Events](/img/arbiscan-contract.png) @@ -59,7 +55,6 @@ Learn how to withdraw your delegated tokens through [Graph Explorer](https://the 9. If you don't know how many tokens you delegated, you can call `getDelegation` on the Read Custom tab. You will need to paste your address (delegator address) and the address of the Indexer that you delegated to, as shown in the following screenshot: ![Both of the addresses needed](/img/get-delegate.png) - - This will return three numbers. The first number is the amount you can unstake. 10. After you have called `unstake`, you can withdraw after approximately 28 epochs (28 days) by calling the `withdraw` function. diff --git a/website/src/pages/ro/subgraphs/best-practices/grafting-hotfix.mdx b/website/src/pages/ro/subgraphs/best-practices/grafting-hotfix.mdx index 674cf6b87c62..591914aca81e 100644 --- a/website/src/pages/ro/subgraphs/best-practices/grafting-hotfix.mdx +++ b/website/src/pages/ro/subgraphs/best-practices/grafting-hotfix.mdx @@ -14,12 +14,10 @@ This feature enables quick deployment of hotfixes for critical issues, eliminati ## Benefits of Grafting for Hotfixes 1. **Rapid Deployment** - - **Minimize Downtime**: When a Subgraph encounters a critical error and stops indexing, grafting enables you to deploy a fix immediately without waiting for re-indexing. - **Immediate Recovery**: The new Subgraph continues from the last indexed block, ensuring that data services remain uninterrupted. 2. **Data Preservation** - - **Reuse Historical Data**: Grafting copies the existing data from the base Subgraph, so you don’t lose valuable historical records. - **Consistency**: Maintains data continuity, which is crucial for applications relying on consistent historical data. @@ -30,19 +28,16 @@ This feature enables quick deployment of hotfixes for critical issues, eliminati ## Best Practices When Using Grafting for Hotfixes 1. **Initial Deployment Without Grafting** - - **Start Clean**: Always deploy your initial Subgraph without grafting to ensure that it’s stable and functions as expected. - **Test Thoroughly**: Validate the Subgraph’s performance to minimize the need for future hotfixes. 2. **Implementing the Hotfix with Grafting** - - **Identify the Issue**: When a critical error occurs, determine the block number of the last successfully indexed event. - **Create a New Subgraph**: Develop a new Subgraph that includes the hotfix. - **Configure Grafting**: Use grafting to copy data up to the identified block number from the failed Subgraph. - **Deploy Quickly**: Publish the grafted Subgraph to restore service as soon as possible. 3. **Post-Hotfix Actions** - - **Monitor Performance**: Ensure the grafted Subgraph is indexing correctly and the hotfix resolves the issue. - **Republish Without Grafting**: Once stable, deploy a new version of the Subgraph without grafting for long-term maintenance. > Note: Relying on grafting indefinitely is not recommended as it can complicate future updates and maintenance. @@ -130,7 +125,6 @@ Suppose you have a Subgraph tracking a smart contract that has stopped indexing - **block**: Block number where grafting should begin. 3. **Deployment Steps** - - **Update the Code**: Implement the hotfix in your mapping scripts (e.g., handleWithdrawal). - **Adjust the Manifest**: As shown above, update the `subgraph.yaml` with grafting configurations. - **Deploy the Subgraph**: diff --git a/website/src/pages/ro/subgraphs/developing/creating/install-the-cli.mdx b/website/src/pages/ro/subgraphs/developing/creating/install-the-cli.mdx index ee168286548b..47db6a6ad7e4 100644 --- a/website/src/pages/ro/subgraphs/developing/creating/install-the-cli.mdx +++ b/website/src/pages/ro/subgraphs/developing/creating/install-the-cli.mdx @@ -46,7 +46,6 @@ graph init \ ``` - The command tries to retrieve the contract ABI from Etherscan. - - The Graph CLI relies on a public RPC endpoint. While occasional failures are expected, retries typically resolve this issue. If failures persist, consider using a local ABI. - If any of the optional arguments are missing, it guides you through an interactive form. @@ -87,7 +86,6 @@ Options: The `graph add` command will fetch the ABI from Etherscan (unless an ABI path is specified with the `--abi` option) and creates a new `dataSource`, similar to how the `graph init` command creates a `dataSource` `--from-contract`, updating the schema and mappings accordingly. This allows you to index implementation contracts from their proxy contracts. - The `--merge-entities` option identifies how the developer would like to handle `entity` and `event` name conflicts: - - If `true`: the new `dataSource` should use existing `eventHandlers` & `entities`. - If `false`: a new `entity` & `event` handler should be created with `${dataSourceName}{EventName}`. diff --git a/website/src/pages/ro/subgraphs/developing/managing/deleting-a-subgraph.mdx b/website/src/pages/ro/subgraphs/developing/managing/deleting-a-subgraph.mdx index b8c2330ca49d..f842a0e04ac4 100644 --- a/website/src/pages/ro/subgraphs/developing/managing/deleting-a-subgraph.mdx +++ b/website/src/pages/ro/subgraphs/developing/managing/deleting-a-subgraph.mdx @@ -17,7 +17,6 @@ Delete your Subgraph using [Subgraph Studio](https://thegraph.com/studio/). ![Delete-subgraph](/img/Delete-subgraph.png) 4. Depending on the Subgraph's status, you will be prompted with various options. - - If the Subgraph is not published, simply click “delete” and confirm. - If the Subgraph is published, you will need to confirm on your wallet before the Subgraph can be deleted from Studio. If a Subgraph is published to multiple networks, such as testnet and mainnet, additional steps may be required. diff --git a/website/src/pages/ro/subgraphs/explorer.mdx b/website/src/pages/ro/subgraphs/explorer.mdx index 499fcede88d3..2da8a191ca99 100644 --- a/website/src/pages/ro/subgraphs/explorer.mdx +++ b/website/src/pages/ro/subgraphs/explorer.mdx @@ -26,7 +26,6 @@ When you click into a Subgraph, you will be able to do the following: - Test queries in the playground and be able to leverage network details to make informed decisions. - Signal GRT on your own Subgraph or the Subgraphs of others to make indexers aware of its importance and quality. - - This is critical because signaling on a Subgraph incentivizes it to be indexed, meaning it’ll eventually surface on the network to serve queries. ![Explorer Image 2](/img/Subgraph-Details.png) diff --git a/website/src/pages/ro/subgraphs/mcp/claude.mdx b/website/src/pages/ro/subgraphs/mcp/claude.mdx index 8b61438d2ab7..027b272cb942 100644 --- a/website/src/pages/ro/subgraphs/mcp/claude.mdx +++ b/website/src/pages/ro/subgraphs/mcp/claude.mdx @@ -85,7 +85,6 @@ Once you've entered your Gateway API key into your settings, save the file and r 2. **Find the Command Path** After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. - - Navigate to your `subgraph-mcp` directory in terminal - Run `pwd` to get the full path - Combine the output with `/target/release/subgraph-mcp` diff --git a/website/src/pages/ro/subgraphs/quick-start.mdx b/website/src/pages/ro/subgraphs/quick-start.mdx index a803ac8695fa..3c43e2dc2bb4 100644 --- a/website/src/pages/ro/subgraphs/quick-start.mdx +++ b/website/src/pages/ro/subgraphs/quick-start.mdx @@ -166,11 +166,9 @@ To customize your deployment, see [Publishing a Subgraph](/subgraphs/developing/ #### Adding signal to your Subgraph 1. To attract Indexers to query your Subgraph, you should add GRT curation signal to it. - - This action improves quality of service, reduces latency, and enhances network redundancy and availability for your Subgraph. 2. If eligible for indexing rewards, Indexers receive GRT rewards based on the signaled amount. - - It’s recommended to curate at least 3,000 GRT to attract 3 Indexers. Check reward eligibility based on Subgraph feature usage and supported networks. To learn more about curation, read [Curating](/resources/roles/curating/). diff --git a/website/src/pages/ru/archived/arbitrum/arbitrum-faq.mdx b/website/src/pages/ru/archived/arbitrum/arbitrum-faq.mdx index 5e7bf098577d..fede5212cb2d 100644 --- a/website/src/pages/ru/archived/arbitrum/arbitrum-faq.mdx +++ b/website/src/pages/ru/archived/arbitrum/arbitrum-faq.mdx @@ -25,7 +25,6 @@ Scaling the protocol smart contracts onto L2 allows network participants to inte Поэтому для оплаты запросов Вам потребуется GRT на Arbitrum. Вот несколько способов, как это можно сделать: - Если у Вас уже есть GRT на Ethereum, Вы можете перенести его на Arbitrum. Вы можете сделать это через опцию переноса GRT, доступную в Subgraph Studio, или с помощью одного из следующих мостов: - - [The Arbitrum Bridge](https://bridge.arbitrum.io/?l2ChainId=42161) - [TransferTo](https://transferto.xyz/swap) diff --git a/website/src/pages/ru/indexing/overview.mdx b/website/src/pages/ru/indexing/overview.mdx index 50c03111ca99..5b3186fa580f 100644 --- a/website/src/pages/ru/indexing/overview.mdx +++ b/website/src/pages/ru/indexing/overview.mdx @@ -680,13 +680,11 @@ graph indexer actions execute approve Обратите внимание, что поддерживаемые типы действий для управления аллокацией имеют различные требования к входным данным: - `Allocate` - выделение стейка для конкретного развертывания субграфа - - необходимые параметры действия: - deploymentID - amount - `Unallocate` — закрыть аллокацию, освободив стейк для перераспределения в другое место - - необходимые параметры действия: - allocationID - deploymentID @@ -695,7 +693,6 @@ graph indexer actions execute approve - force (принудительно использует указанный POI, даже если он не совпадает с тем, что предоставляет graph-node) - `Reallocate` - атомарно закрывает распределение и открывает новое распределение для того же развертывания субграфа - - необходимые параметры действия: - allocationID - deploymentID diff --git a/website/src/pages/ru/indexing/tap.mdx b/website/src/pages/ru/indexing/tap.mdx index 7703c14853a6..9d67cfeca45b 100644 --- a/website/src/pages/ru/indexing/tap.mdx +++ b/website/src/pages/ru/indexing/tap.mdx @@ -38,7 +38,6 @@ GraphTally allows a sender to make multiple payments to a receiver, **Receipts** 3. `indexer-agent` берет все последние RAVS и отправляет запросы на выкуп в блокчейн, который обновит значение `redeem_at`. 4. В течение периода `` `indexer-agent` отслеживает, происходят ли в блокчейне какие-либо реорганизации, которые отменяют транзакцию. - - Если он был отменён, RAV повторно отправляется в блокчейн. Если он не был отменён, он помечается как `final`. ## Адреса блокчейна @@ -77,17 +76,14 @@ In addition to the typical requirements to run an indexer, you’ll need a `tap- ### Шаги 1. **Indexer Agent** - - Следуйте [этому же процессу] (https://github.com/graphprotocol/indexer/pkgs/container/indexer-agent#graph-protocol-indexer-compents). - Give the new argument `--tap-subgraph-endpoint` to activate the new GraphTally codepaths and enable redeeming of RAVs. 2. **Indexer Service** - - Полностью замените текущую конфигурацию на [новую службу Индексатора rs](https://github.com/graphprotocol/indexer-rs). Рекомендуется использовать [образ контейнера](https://github.com/orgs/graphprotocol/packages?repo_name=indexer-rs). - Как и в старой версии, Вы можете легко расположить Indexer Service горизонтально. Он по-прежнему не закреплен. 3. **TAP Agent** - - Всегда запускайте _один_ единственный экземпляр [TAP Agent](https://github.com/graphprotocol/indexer-rs). Рекомендуется использовать [образ контейнера](https://github.com/orgs/graphprotocol/packages?repo_name=indexer-rs). 4. **Настройка Indexer Service и TAP Agent** diff --git a/website/src/pages/ru/resources/glossary.mdx b/website/src/pages/ru/resources/glossary.mdx index 9f55e53ab4e5..4b8820b62199 100644 --- a/website/src/pages/ru/resources/glossary.mdx +++ b/website/src/pages/ru/resources/glossary.mdx @@ -15,7 +15,6 @@ title: Глоссарий - **Индексаторы**: Участники сети, которые запускают ноды индексирования для индексирования данных из блокчейнов и обслуживания запросов GraphQL. - **Потоки доходов Индексатора**: Индексаторы получают вознаграждение в GRT с помощью двух компонентов: скидки на сборы за запросы и вознаграждения за индексирование. - 1. **Query Fee Rebates**: Payments from Subgraph consumers for serving queries on the network. 2. **Indexing Rewards**: The rewards that Indexers receive for indexing Subgraphs. Indexing rewards are generated via new issuance of 3% GRT annually. @@ -43,7 +42,6 @@ title: Глоссарий - **Эпоха**: Единица времени в сети. В настоящее время одна эпоха составляет 6 646 блоков или приблизительно 1 день. - **Allocation**: An Indexer can allocate their total GRT stake (including Delegators' stake) towards Subgraphs that have been published on The Graph's decentralized network. Allocations can have different statuses: - 1. **Active**: An allocation is considered active when it is created onchain. This is called opening an allocation, and indicates to the network that the Indexer is actively indexing and serving queries for a particular Subgraph. Active allocations accrue indexing rewards proportional to the signal on the Subgraph, and the amount of GRT allocated. 2. **Closed**: An Indexer may claim the accrued indexing rewards on a given Subgraph by submitting a recent, and valid, Proof of Indexing (POI). This is known as closing an allocation. An allocation must have been open for a minimum of one epoch before it can be closed. The maximum allocation period is 28 epochs. If an Indexer leaves an allocation open beyond 28 epochs, it is known as a stale allocation. When an allocation is in the **Closed** state, a Fisherman can still open a dispute to challenge an Indexer for serving false data. diff --git a/website/src/pages/ru/resources/roles/delegating/undelegating.mdx b/website/src/pages/ru/resources/roles/delegating/undelegating.mdx index c9f6de94cca2..fbb0578bd2e1 100644 --- a/website/src/pages/ru/resources/roles/delegating/undelegating.mdx +++ b/website/src/pages/ru/resources/roles/delegating/undelegating.mdx @@ -13,13 +13,11 @@ title: Отмена делегирования 1. Посетите [Graph Explorer](https://thegraph.com/explorer). Убедитесь, что вы находитесь в Explorer, а **не** в Subgraph Studio. 2. Нажмите на свой профиль. Он находится в верхнем правом углу страницы. - - Убедитесь, что ваш кошелек подключен. Если он не подключен, вместо этого вы увидите кнопку "подключить". 3. Когда вы окажетесь в своем профиле, нажмите на вкладку "Делегирование". В этой вкладке вы сможете увидеть список Индексаторов, которым вы делегировали свои токены. 4. Нажмите на Индексатора, из которого вы хотите вывести свои токены. - - Убедитесь, что вы записали конкретного Индексатора, так как вам нужно будет найти его снова для вывода. 5. Выберите опцию "Отменить делегирование", кликнув на три точки рядом с Индексатором с правой стороны, как показано на изображении ниже: @@ -37,11 +35,9 @@ title: Отмена делегирования ### Пошаговое руководство 1. Найдите вашу транзакцию делегирования на Arbiscan. - - Вот [пример транзакции на Arbiscan](https://arbiscan.io/tx/0xcf2110eac897099f821064445041031efb32786392bdbe7544a4cb7a6b2e4f9a) 2. Перейдите в раздел "Действие по транзакции", где вы можете найти контракт расширения стейкинга: - - [Это контракт расширения стейкинга для приведенного выше примера](https://arbiscan.io/address/0x00669A4CF01450B64E8A2A20E9b1FCB71E61eF03) 3. Затем нажмите на «Контракт». ![Вкладка контракта на Arbiscan, между трансфер NFT и События](/img/arbiscan-contract.png) @@ -59,7 +55,6 @@ title: Отмена делегирования 9. Если вы не знаете, сколько токенов вы делегировали, вы можете вызвать `getDelegation` на вкладке Read Custom. Вам нужно будет вставить свой адрес (адрес делегатора) и адрес Индексатора, которому вы делегировали, как показано на следующем скриншоте: ![Оба адреса, которые нужны](/img/get-delegate.png) - - Это вернет три числа. Первое число — это количество токенов, которые вы можете вывести. 10. После того как вы вызовете `unstake`, вы сможете вывести токены примерно через 28 эпох (28 дней), вызвав функцию `withdraw`. diff --git a/website/src/pages/ru/subgraphs/best-practices/grafting-hotfix.mdx b/website/src/pages/ru/subgraphs/best-practices/grafting-hotfix.mdx index b169115f012c..42ec608729a4 100644 --- a/website/src/pages/ru/subgraphs/best-practices/grafting-hotfix.mdx +++ b/website/src/pages/ru/subgraphs/best-practices/grafting-hotfix.mdx @@ -14,12 +14,10 @@ This feature enables quick deployment of hotfixes for critical issues, eliminati ## Преимущества графтинга для оперативных исправлений 1. **Быстрое развертывание** - - **Minimize Downtime**: When a Subgraph encounters a critical error and stops indexing, grafting enables you to deploy a fix immediately without waiting for re-indexing. - **Immediate Recovery**: The new Subgraph continues from the last indexed block, ensuring that data services remain uninterrupted. 2. **Сохранение данных** - - **Reuse Historical Data**: Grafting copies the existing data from the base Subgraph, so you don’t lose valuable historical records. - **Консистентность**: поддерживает непрерывность данных, что имеет решающее значение для приложений, полагающихся на согласованные исторические данные. @@ -30,19 +28,16 @@ This feature enables quick deployment of hotfixes for critical issues, eliminati ## Лучшие практики при использовании графтинга для оперативных исправлений 1. **Первоначальное развертывание без графтинга** - - **Start Clean**: Always deploy your initial Subgraph without grafting to ensure that it’s stable and functions as expected. - **Test Thoroughly**: Validate the Subgraph’s performance to minimize the need for future hotfixes. 2. **Реализация исправления с использованием графтинга** - - **Определите проблему**: при возникновении критической ошибки определите номер блока последнего успешно проиндексированного события. - **Create a New Subgraph**: Develop a new Subgraph that includes the hotfix. - **Configure Grafting**: Use grafting to copy data up to the identified block number from the failed Subgraph. - **Deploy Quickly**: Publish the grafted Subgraph to restore service as soon as possible. 3. **Действия после оперативного исправления** - - **Monitor Performance**: Ensure the grafted Subgraph is indexing correctly and the hotfix resolves the issue. - **Republish Without Grafting**: Once stable, deploy a new version of the Subgraph without grafting for long-term maintenance. > Примечание: Не рекомендуется использовать графтинг бесконечно, так как это может усложнить будущие обновления и обслуживание. @@ -130,7 +125,6 @@ Suppose you have a Subgraph tracking a smart contract that has stopped indexing - **block**: номер блока, с которого должен начаться графтинг. 3. **Шаги развертывания** - - **Обновите код**: внедрите исправление в свои скрипты мэппинга (например, handleWithdrawal). - **Отредактируйте манифест**: как показано выше, обновите файл `subgraph.yaml` с конфигурациями для графтинга. - **Разверните субграф**: diff --git a/website/src/pages/ru/subgraphs/developing/creating/install-the-cli.mdx b/website/src/pages/ru/subgraphs/developing/creating/install-the-cli.mdx index 0208397aeb4d..53abc627eefe 100644 --- a/website/src/pages/ru/subgraphs/developing/creating/install-the-cli.mdx +++ b/website/src/pages/ru/subgraphs/developing/creating/install-the-cli.mdx @@ -46,7 +46,6 @@ graph init \ ``` - Команда пытается получить ABI контракта из Etherscan. - - Интерфейс командной строки The Graph использует общедоступную конечную точку RPC. Несмотря на то, что возможны периодические сбои, повторные попытки обычно решают эту проблему. Если сбои продолжаются, рассмотрите возможность использования локального ABI. - Если какой-либо из необязательных аргументов отсутствует, Вам будет предложено воспользоваться интерактивной формой. @@ -87,7 +86,6 @@ Options: The `graph add` command will fetch the ABI from Etherscan (unless an ABI path is specified with the `--abi` option) and creates a new `dataSource`, similar to how the `graph init` command creates a `dataSource` `--from-contract`, updating the schema and mappings accordingly. This allows you to index implementation contracts from their proxy contracts. - The `--merge-entities` option identifies how the developer would like to handle `entity` and `event` name conflicts: - - If `true`: the new `dataSource` should use existing `eventHandlers` & `entities`. - If `false`: a new `entity` & `event` handler should be created with `${dataSourceName}{EventName}`. diff --git a/website/src/pages/ru/subgraphs/developing/managing/deleting-a-subgraph.mdx b/website/src/pages/ru/subgraphs/developing/managing/deleting-a-subgraph.mdx index 84674685403f..f82303c0df16 100644 --- a/website/src/pages/ru/subgraphs/developing/managing/deleting-a-subgraph.mdx +++ b/website/src/pages/ru/subgraphs/developing/managing/deleting-a-subgraph.mdx @@ -17,7 +17,6 @@ title: Удаление субграфа ![Удалить субграф](/img/Delete-subgraph.png) 4. В зависимости от состояния субграфа, вам будут предложены различные варианты. - - Если субграф не опубликован, просто нажмите «удалить» и подтвердите действие. - Если субграф опубликован, вам нужно будет подтвердить действие в вашем кошельке перед его удалением из Studio. Если субграф опубликован в нескольких сетях, таких как тестовая сеть и основная сеть, могут потребоваться дополнительные шаги. diff --git a/website/src/pages/ru/subgraphs/explorer.mdx b/website/src/pages/ru/subgraphs/explorer.mdx index b963e985dd99..73c93939f8af 100644 --- a/website/src/pages/ru/subgraphs/explorer.mdx +++ b/website/src/pages/ru/subgraphs/explorer.mdx @@ -26,7 +26,6 @@ When you click into a Subgraph, you will be able to do the following: - Протестировать запросы на тестовой площадке и использовать данные сети для принятия обоснованных решений. - Signal GRT on your own Subgraph or the Subgraphs of others to make indexers aware of its importance and quality. - - This is critical because signaling on a Subgraph incentivizes it to be indexed, meaning it’ll eventually surface on the network to serve queries. ![Изображение Explorer 2](/img/Subgraph-Details.png) diff --git a/website/src/pages/ru/subgraphs/mcp/claude.mdx b/website/src/pages/ru/subgraphs/mcp/claude.mdx index 8b61438d2ab7..027b272cb942 100644 --- a/website/src/pages/ru/subgraphs/mcp/claude.mdx +++ b/website/src/pages/ru/subgraphs/mcp/claude.mdx @@ -85,7 +85,6 @@ Once you've entered your Gateway API key into your settings, save the file and r 2. **Find the Command Path** After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. - - Navigate to your `subgraph-mcp` directory in terminal - Run `pwd` to get the full path - Combine the output with `/target/release/subgraph-mcp` diff --git a/website/src/pages/ru/subgraphs/quick-start.mdx b/website/src/pages/ru/subgraphs/quick-start.mdx index c676f1cf698d..6c71c52aed04 100644 --- a/website/src/pages/ru/subgraphs/quick-start.mdx +++ b/website/src/pages/ru/subgraphs/quick-start.mdx @@ -166,11 +166,9 @@ graph publish #### Добавление сигнала к Вашему субграфу 1. Чтобы привлечь Индексаторов для запросов к вашему субграфу, вам следует добавить сигнал курирования GRT. - - Это действие улучшает качество обслуживания, снижает задержку и повышает сетевую избыточность и доступность для вашего субграфа. 2. Если индексаторы имеют право на получение вознаграждений за индексацию, они получат вознаграждения в GRT, в соответствии с количеством поданного сигнала. - - Рекомендуется курировать как минимум 3,000 GRT, чтобы привлечь 3 Индексаторов. Проверьте право на вознаграждения в зависимости от использования функций субграфа и поддерживаемых сетей. Чтобы узнать больше о кураторстве, прочитайте статью [Курирование](/resources/roles/curating/). diff --git a/website/src/pages/sv/archived/arbitrum/arbitrum-faq.mdx b/website/src/pages/sv/archived/arbitrum/arbitrum-faq.mdx index aba7e13387a4..f8ce0521a166 100644 --- a/website/src/pages/sv/archived/arbitrum/arbitrum-faq.mdx +++ b/website/src/pages/sv/archived/arbitrum/arbitrum-faq.mdx @@ -25,7 +25,6 @@ The Graph’s billing system accepts GRT on Arbitrum, and users will need ETH on Consequently, to pay for queries, you need GRT on Arbitrum. Here are a few different ways to achieve this: - If you already have GRT on Ethereum, you can bridge it to Arbitrum. You can do this via the GRT bridging option provided in Subgraph Studio or by using one of the following bridges: - - [The Arbitrum Bridge](https://bridge.arbitrum.io/?l2ChainId=42161) - [TransferTo](https://transferto.xyz/swap) diff --git a/website/src/pages/sv/indexing/overview.mdx b/website/src/pages/sv/indexing/overview.mdx index c265f0efff66..1192f4426430 100644 --- a/website/src/pages/sv/indexing/overview.mdx +++ b/website/src/pages/sv/indexing/overview.mdx @@ -680,13 +680,11 @@ graph indexer actions execute approve Note that supported action types for allocation management have different input requirements: - `Allocate` - allocate stake to a specific Subgraph deployment - - required action params: - deploymentID - amount - `Unallocate` - close allocation, freeing up the stake to reallocate elsewhere - - required action params: - allocationID - deploymentID @@ -695,7 +693,6 @@ Note that supported action types for allocation management have different input - force (forces using the provided POI even if it doesn’t match what the graph-node provides) - `Reallocate` - atomically close allocation and open a fresh allocation for the same Subgraph deployment - - required action params: - allocationID - deploymentID diff --git a/website/src/pages/sv/indexing/tap.mdx b/website/src/pages/sv/indexing/tap.mdx index 65582940a499..fefb56202cee 100644 --- a/website/src/pages/sv/indexing/tap.mdx +++ b/website/src/pages/sv/indexing/tap.mdx @@ -38,7 +38,6 @@ As long as you run `tap-agent` and `indexer-agent`, everything will be executed 3. `indexer-agent` takes all the last RAVS and sends redeem requests to the blockchain, which will update the value of `redeem_at`. 4. During the `` period, `indexer-agent` monitors if the blockchain has any reorganizations that revert the transaction. - - If it was reverted, the RAV is resent to the blockchain. If it was not reverted, it gets marked as `final`. ## Blockchain Addresses @@ -77,17 +76,14 @@ The required software version can be found [here](https://github.com/graphprotoc ### Steps 1. **Indexer Agent** - - Follow the [same process](https://github.com/graphprotocol/indexer/pkgs/container/indexer-agent#graph-protocol-indexer-components). - Give the new argument `--tap-subgraph-endpoint` to activate the new GraphTally codepaths and enable redeeming of RAVs. 2. **Indexer Service** - - Fully replace your current configuration with the [new Indexer Service rs](https://github.com/graphprotocol/indexer-rs). It's recommend that you use the [container image](https://github.com/orgs/graphprotocol/packages?repo_name=indexer-rs). - Like the older version, you can scale Indexer Service horizontally easily. It is still stateless. 3. **TAP Agent** - - Run _one_ single instance of [TAP Agent](https://github.com/graphprotocol/indexer-rs) at all times. It's recommend that you use the [container image](https://github.com/orgs/graphprotocol/packages?repo_name=indexer-rs). 4. **Configure Indexer Service and TAP Agent** diff --git a/website/src/pages/sv/resources/glossary.mdx b/website/src/pages/sv/resources/glossary.mdx index 72ab2ba9333a..4cbb02afecf3 100644 --- a/website/src/pages/sv/resources/glossary.mdx +++ b/website/src/pages/sv/resources/glossary.mdx @@ -15,7 +15,6 @@ title: Ordlista - **Indexer**: Network participants that run indexing nodes to index data from blockchains and serve GraphQL queries. - **Indexer Revenue Streams**: Indexers are rewarded in GRT with two components: query fee rebates and indexing rewards. - 1. **Query Fee Rebates**: Payments from Subgraph consumers for serving queries on the network. 2. **Indexing Rewards**: The rewards that Indexers receive for indexing Subgraphs. Indexing rewards are generated via new issuance of 3% GRT annually. @@ -43,7 +42,6 @@ title: Ordlista - **Epoch**: A unit of time within the network. Currently, one epoch is 6,646 blocks or approximately 1 day. - **Allocation**: An Indexer can allocate their total GRT stake (including Delegators' stake) towards Subgraphs that have been published on The Graph's decentralized network. Allocations can have different statuses: - 1. **Active**: An allocation is considered active when it is created onchain. This is called opening an allocation, and indicates to the network that the Indexer is actively indexing and serving queries for a particular Subgraph. Active allocations accrue indexing rewards proportional to the signal on the Subgraph, and the amount of GRT allocated. 2. **Closed**: An Indexer may claim the accrued indexing rewards on a given Subgraph by submitting a recent, and valid, Proof of Indexing (POI). This is known as closing an allocation. An allocation must have been open for a minimum of one epoch before it can be closed. The maximum allocation period is 28 epochs. If an Indexer leaves an allocation open beyond 28 epochs, it is known as a stale allocation. When an allocation is in the **Closed** state, a Fisherman can still open a dispute to challenge an Indexer for serving false data. diff --git a/website/src/pages/sv/resources/roles/delegating/undelegating.mdx b/website/src/pages/sv/resources/roles/delegating/undelegating.mdx index 9ea2ef752778..c10617374c5c 100644 --- a/website/src/pages/sv/resources/roles/delegating/undelegating.mdx +++ b/website/src/pages/sv/resources/roles/delegating/undelegating.mdx @@ -13,13 +13,11 @@ Learn how to withdraw your delegated tokens through [Graph Explorer](https://the 1. Visit [Graph Explorer](https://thegraph.com/explorer). Please make sure you're on Explorer and **not** Subgraph Studio. 2. Click on your profile. You can find it on the top right corner of the page. - - Make sure that your wallet is connected. If it's not connected, you will see the "connect" button instead. 3. Once you're in your profile, click on the Delegating tab. In the Delegating tab, you can view the list of Indexers you have delegated to. 4. Click on the Indexer from which you wish to withdraw your tokens. - - Make sure to note the specific Indexer, as you will need to find them again to withdraw. 5. Select the "Undelegate" option by clicking on the three dots next to the Indexer on the right side, see image below: @@ -37,11 +35,9 @@ Learn how to withdraw your delegated tokens through [Graph Explorer](https://the ### Step-by-Step 1. Find your delegation transaction on Arbiscan. - - Here's an [example transaction on Arbiscan](https://arbiscan.io/tx/0xcf2110eac897099f821064445041031efb32786392bdbe7544a4cb7a6b2e4f9a) 2. Navigate to "Transaction Action" where you can find the staking extension contract: - - [This is the staking extension contract for the example listed above](https://arbiscan.io/address/0x00669A4CF01450B64E8A2A20E9b1FCB71E61eF03) 3. Then click on "Contract". ![Contract tab on Arbiscan, between NFT Transfers and Events](/img/arbiscan-contract.png) @@ -59,7 +55,6 @@ Learn how to withdraw your delegated tokens through [Graph Explorer](https://the 9. If you don't know how many tokens you delegated, you can call `getDelegation` on the Read Custom tab. You will need to paste your address (delegator address) and the address of the Indexer that you delegated to, as shown in the following screenshot: ![Both of the addresses needed](/img/get-delegate.png) - - This will return three numbers. The first number is the amount you can unstake. 10. After you have called `unstake`, you can withdraw after approximately 28 epochs (28 days) by calling the `withdraw` function. diff --git a/website/src/pages/sv/subgraphs/best-practices/grafting-hotfix.mdx b/website/src/pages/sv/subgraphs/best-practices/grafting-hotfix.mdx index acc7aa19a5ec..70a6a160be1a 100644 --- a/website/src/pages/sv/subgraphs/best-practices/grafting-hotfix.mdx +++ b/website/src/pages/sv/subgraphs/best-practices/grafting-hotfix.mdx @@ -14,12 +14,10 @@ This feature enables quick deployment of hotfixes for critical issues, eliminati ## Benefits of Grafting for Hotfixes 1. **Rapid Deployment** - - **Minimize Downtime**: When a Subgraph encounters a critical error and stops indexing, grafting enables you to deploy a fix immediately without waiting for re-indexing. - **Immediate Recovery**: The new Subgraph continues from the last indexed block, ensuring that data services remain uninterrupted. 2. **Data Preservation** - - **Reuse Historical Data**: Grafting copies the existing data from the base Subgraph, so you don’t lose valuable historical records. - **Consistency**: Maintains data continuity, which is crucial for applications relying on consistent historical data. @@ -30,19 +28,16 @@ This feature enables quick deployment of hotfixes for critical issues, eliminati ## Best Practices When Using Grafting for Hotfixes 1. **Initial Deployment Without Grafting** - - **Start Clean**: Always deploy your initial Subgraph without grafting to ensure that it’s stable and functions as expected. - **Test Thoroughly**: Validate the Subgraph’s performance to minimize the need for future hotfixes. 2. **Implementing the Hotfix with Grafting** - - **Identify the Issue**: When a critical error occurs, determine the block number of the last successfully indexed event. - **Create a New Subgraph**: Develop a new Subgraph that includes the hotfix. - **Configure Grafting**: Use grafting to copy data up to the identified block number from the failed Subgraph. - **Deploy Quickly**: Publish the grafted Subgraph to restore service as soon as possible. 3. **Post-Hotfix Actions** - - **Monitor Performance**: Ensure the grafted Subgraph is indexing correctly and the hotfix resolves the issue. - **Republish Without Grafting**: Once stable, deploy a new version of the Subgraph without grafting for long-term maintenance. > Note: Relying on grafting indefinitely is not recommended as it can complicate future updates and maintenance. @@ -130,7 +125,6 @@ Suppose you have a Subgraph tracking a smart contract that has stopped indexing - **block**: Block number where grafting should begin. 3. **Deployment Steps** - - **Update the Code**: Implement the hotfix in your mapping scripts (e.g., handleWithdrawal). - **Adjust the Manifest**: As shown above, update the `subgraph.yaml` with grafting configurations. - **Deploy the Subgraph**: diff --git a/website/src/pages/sv/subgraphs/developing/creating/install-the-cli.mdx b/website/src/pages/sv/subgraphs/developing/creating/install-the-cli.mdx index 21e3401cd8e9..500bd1b42581 100644 --- a/website/src/pages/sv/subgraphs/developing/creating/install-the-cli.mdx +++ b/website/src/pages/sv/subgraphs/developing/creating/install-the-cli.mdx @@ -46,7 +46,6 @@ graph init \ ``` - The command tries to retrieve the contract ABI from Etherscan. - - The Graph CLI relies on a public RPC endpoint. While occasional failures are expected, retries typically resolve this issue. If failures persist, consider using a local ABI. - If any of the optional arguments are missing, it guides you through an interactive form. @@ -87,7 +86,6 @@ Options: The `graph add` command will fetch the ABI from Etherscan (unless an ABI path is specified with the `--abi` option) and creates a new `dataSource`, similar to how the `graph init` command creates a `dataSource` `--from-contract`, updating the schema and mappings accordingly. This allows you to index implementation contracts from their proxy contracts. - The `--merge-entities` option identifies how the developer would like to handle `entity` and `event` name conflicts: - - If `true`: the new `dataSource` should use existing `eventHandlers` & `entities`. - If `false`: a new `entity` & `event` handler should be created with `${dataSourceName}{EventName}`. diff --git a/website/src/pages/sv/subgraphs/developing/managing/deleting-a-subgraph.mdx b/website/src/pages/sv/subgraphs/developing/managing/deleting-a-subgraph.mdx index b8c2330ca49d..f842a0e04ac4 100644 --- a/website/src/pages/sv/subgraphs/developing/managing/deleting-a-subgraph.mdx +++ b/website/src/pages/sv/subgraphs/developing/managing/deleting-a-subgraph.mdx @@ -17,7 +17,6 @@ Delete your Subgraph using [Subgraph Studio](https://thegraph.com/studio/). ![Delete-subgraph](/img/Delete-subgraph.png) 4. Depending on the Subgraph's status, you will be prompted with various options. - - If the Subgraph is not published, simply click “delete” and confirm. - If the Subgraph is published, you will need to confirm on your wallet before the Subgraph can be deleted from Studio. If a Subgraph is published to multiple networks, such as testnet and mainnet, additional steps may be required. diff --git a/website/src/pages/sv/subgraphs/explorer.mdx b/website/src/pages/sv/subgraphs/explorer.mdx index 87b670a3247d..b5a5564ab85d 100644 --- a/website/src/pages/sv/subgraphs/explorer.mdx +++ b/website/src/pages/sv/subgraphs/explorer.mdx @@ -26,7 +26,6 @@ When you click into a Subgraph, you will be able to do the following: - Test queries in the playground and be able to leverage network details to make informed decisions. - Signal GRT on your own Subgraph or the Subgraphs of others to make indexers aware of its importance and quality. - - This is critical because signaling on a Subgraph incentivizes it to be indexed, meaning it’ll eventually surface on the network to serve queries. ![Explorer Image 2](/img/Subgraph-Details.png) diff --git a/website/src/pages/sv/subgraphs/mcp/claude.mdx b/website/src/pages/sv/subgraphs/mcp/claude.mdx index 8b61438d2ab7..027b272cb942 100644 --- a/website/src/pages/sv/subgraphs/mcp/claude.mdx +++ b/website/src/pages/sv/subgraphs/mcp/claude.mdx @@ -85,7 +85,6 @@ Once you've entered your Gateway API key into your settings, save the file and r 2. **Find the Command Path** After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. - - Navigate to your `subgraph-mcp` directory in terminal - Run `pwd` to get the full path - Combine the output with `/target/release/subgraph-mcp` diff --git a/website/src/pages/sv/subgraphs/quick-start.mdx b/website/src/pages/sv/subgraphs/quick-start.mdx index f3fba67ef0d7..4ef6044acfcd 100644 --- a/website/src/pages/sv/subgraphs/quick-start.mdx +++ b/website/src/pages/sv/subgraphs/quick-start.mdx @@ -166,11 +166,9 @@ To customize your deployment, see [Publishing a Subgraph](/subgraphs/developing/ #### Adding signal to your Subgraph 1. To attract Indexers to query your Subgraph, you should add GRT curation signal to it. - - This action improves quality of service, reduces latency, and enhances network redundancy and availability for your Subgraph. 2. If eligible for indexing rewards, Indexers receive GRT rewards based on the signaled amount. - - It’s recommended to curate at least 3,000 GRT to attract 3 Indexers. Check reward eligibility based on Subgraph feature usage and supported networks. To learn more about curation, read [Curating](/resources/roles/curating/). diff --git a/website/src/pages/tr/archived/arbitrum/arbitrum-faq.mdx b/website/src/pages/tr/archived/arbitrum/arbitrum-faq.mdx index eeb1e61127b5..a06a4e00087d 100644 --- a/website/src/pages/tr/archived/arbitrum/arbitrum-faq.mdx +++ b/website/src/pages/tr/archived/arbitrum/arbitrum-faq.mdx @@ -25,7 +25,6 @@ The Graph'in faturalandırma sistemi, Arbitrum ağı üzerinde GRT ile ödeme al Dolayısıyla, sorgu ödemelerini yapmak için Arbitrum üzerinde GRT'ye ihtiyacınız var. İşte GRT elde etmenin birkaç farklı yolu: - Ethereum üzerinde zaten GRT'niz varsa, bunu Arbitrum'a köprüleyebilirsiniz. Bunu, Subgraph Studio'da sunulan GRT köprüleme seçeneği aracılığıyla veya aşağıdaki köprülerden birini kullanarak yapabilirsiniz: - - [Arbitrum Köprüsü](https://bridge.arbitrum.io/?l2ChainId=42161) - [TransferTo](https://transferto.xyz/swap) diff --git a/website/src/pages/tr/indexing/overview.mdx b/website/src/pages/tr/indexing/overview.mdx index 6017f2fdc09e..57d4c8943607 100644 --- a/website/src/pages/tr/indexing/overview.mdx +++ b/website/src/pages/tr/indexing/overview.mdx @@ -680,13 +680,11 @@ graph indexer actions execute approve Note that supported action types for allocation management have different input requirements: - `Allocate` - allocate stake to a specific Subgraph deployment - - required action params: - deploymentID - amount - `Unallocate` - close allocation, freeing up the stake to reallocate elsewhere - - required action params: - allocationID - deploymentID @@ -695,7 +693,6 @@ Note that supported action types for allocation management have different input - force (forces using the provided POI even if it doesn’t match what the graph-node provides) - `Reallocate` - atomically close allocation and open a fresh allocation for the same Subgraph deployment - - required action params: - allocationID - deploymentID diff --git a/website/src/pages/tr/indexing/tap.mdx b/website/src/pages/tr/indexing/tap.mdx index d59e66ef4a76..8377de25d05f 100644 --- a/website/src/pages/tr/indexing/tap.mdx +++ b/website/src/pages/tr/indexing/tap.mdx @@ -38,7 +38,6 @@ Ağ geçidi her sorgu için size veritabanınızda saklanan bir `signed receipt` 3. `indexer-agent`, tüm son RAV'leri alır ve blokzincirine kullanma talepleri gönderir, bu da `redeem_at` değerini güncelleyecektir. 4. `` dönemi boyunca, `indexer-agent`, blokzincirinin işlemi geri çeviren herhangi bir yeniden düzenleme (reorg) yaşayıp yaşamadığını izler. - - Eğer işlem geri çevrildiyse, RAV tekrar blokzincire gönderilir. Eğer geri çevrilmediyse, `final` (nihai) olarak işaretlenir. ## Blokzinciri Adresleri @@ -77,17 +76,14 @@ Gerekli yazılım sürümü [burada](https://github.com/graphprotocol/indexer/bl ### Adımlar 1. **Endeksleyici Aracı** - - [Buradaki süreci](https://github.com/graphprotocol/indexer/pkgs/container/indexer-agent#graph-protocol-indexer-components) takip edin. - Give the new argument `--tap-subgraph-endpoint` to activate the new GraphTally codepaths and enable redeeming of RAVs. 2. **Endeksleyici Hizmeti** - - Mevcut yapılandırmanızı tamamen [yeni Indexer Service rs (Endeksleyici Hizmeti)](https://github.com/graphprotocol/indexer-rs) ile değiştirin. [Konteyner imajını](https://github.com/orgs/graphprotocol/packages?repo_name=indexer-rs) kullanmanız tavsiye edilir. - Eski versiyonda olduğu gibi, Endeksleyici Hizmeti'ni yatay olarak kolayca ölçekleyebilirsiniz. Hala durumsuz (stateless) bir yapıya sahiptir. 3. **TAP Aracı** - - Her zaman [TAP Aracı](https://github.com/graphprotocol/indexer-rs)'nın _tek_ bir örneğini çalıştırın. [Konteyner imajını](https://github.com/orgs/graphprotocol/packages?repo_name=indexer-rs) kullanmanız önerilir. 4. **Endeksleyici Servisi'ni ve TAP Aracı'nı Yapılandırma** diff --git a/website/src/pages/tr/resources/glossary.mdx b/website/src/pages/tr/resources/glossary.mdx index 75f3b5e3cb0b..c4c885bcf827 100644 --- a/website/src/pages/tr/resources/glossary.mdx +++ b/website/src/pages/tr/resources/glossary.mdx @@ -15,7 +15,6 @@ title: Sözlük - **Endeksleyici**: Blokzincirlerinden veri endekslemek ve GraphQL sorgularını sunmak için endeksleme düğümleri çalıştıran ağ katılımcıları. - **Endeksleyici Gelir Akışları**: Endeksleyiciler, sorgu ücreti iadeleri ve endeksleme ödülleri olmak üzere iki bileşenle GRT cinsinden ödüllendirilir. - 1. **Query Fee Rebates**: Payments from Subgraph consumers for serving queries on the network. 2. **Indexing Rewards**: The rewards that Indexers receive for indexing Subgraphs. Indexing rewards are generated via new issuance of 3% GRT annually. @@ -43,7 +42,6 @@ title: Sözlük - **Dönem**: Ağdaki bir zaman birimi. Şu anda, bir dönem 6.646 blok veya yaklaşık 1 gündür. - **Allocation**: An Indexer can allocate their total GRT stake (including Delegators' stake) towards Subgraphs that have been published on The Graph's decentralized network. Allocations can have different statuses: - 1. **Active**: An allocation is considered active when it is created onchain. This is called opening an allocation, and indicates to the network that the Indexer is actively indexing and serving queries for a particular Subgraph. Active allocations accrue indexing rewards proportional to the signal on the Subgraph, and the amount of GRT allocated. 2. **Closed**: An Indexer may claim the accrued indexing rewards on a given Subgraph by submitting a recent, and valid, Proof of Indexing (POI). This is known as closing an allocation. An allocation must have been open for a minimum of one epoch before it can be closed. The maximum allocation period is 28 epochs. If an Indexer leaves an allocation open beyond 28 epochs, it is known as a stale allocation. When an allocation is in the **Closed** state, a Fisherman can still open a dispute to challenge an Indexer for serving false data. diff --git a/website/src/pages/tr/resources/roles/delegating/undelegating.mdx b/website/src/pages/tr/resources/roles/delegating/undelegating.mdx index 38296af1532f..a15e068d32cd 100644 --- a/website/src/pages/tr/resources/roles/delegating/undelegating.mdx +++ b/website/src/pages/tr/resources/roles/delegating/undelegating.mdx @@ -13,13 +13,11 @@ Learn how to withdraw your delegated tokens through [Graph Explorer](https://the 1. Visit [Graph Explorer](https://thegraph.com/explorer). Please make sure you're on Explorer and **not** Subgraph Studio. 2. Click on your profile. You can find it on the top right corner of the page. - - Make sure that your wallet is connected. If it's not connected, you will see the "connect" button instead. 3. Once you're in your profile, click on the Delegating tab. In the Delegating tab, you can view the list of Indexers you have delegated to. 4. Click on the Indexer from which you wish to withdraw your tokens. - - Make sure to note the specific Indexer, as you will need to find them again to withdraw. 5. Select the "Undelegate" option by clicking on the three dots next to the Indexer on the right side, see image below: @@ -37,11 +35,9 @@ Learn how to withdraw your delegated tokens through [Graph Explorer](https://the ### Adım Adım 1. Find your delegation transaction on Arbiscan. - - Here's an [example transaction on Arbiscan](https://arbiscan.io/tx/0xcf2110eac897099f821064445041031efb32786392bdbe7544a4cb7a6b2e4f9a) 2. Navigate to "Transaction Action" where you can find the staking extension contract: - - [This is the staking extension contract for the example listed above](https://arbiscan.io/address/0x00669A4CF01450B64E8A2A20E9b1FCB71E61eF03) 3. Then click on "Contract". ![Contract tab on Arbiscan, between NFT Transfers and Events](/img/arbiscan-contract.png) @@ -59,7 +55,6 @@ Learn how to withdraw your delegated tokens through [Graph Explorer](https://the 9. If you don't know how many tokens you delegated, you can call `getDelegation` on the Read Custom tab. You will need to paste your address (delegator address) and the address of the Indexer that you delegated to, as shown in the following screenshot: ![Both of the addresses needed](/img/get-delegate.png) - - This will return three numbers. The first number is the amount you can unstake. 10. After you have called `unstake`, you can withdraw after approximately 28 epochs (28 days) by calling the `withdraw` function. diff --git a/website/src/pages/tr/subgraphs/best-practices/grafting-hotfix.mdx b/website/src/pages/tr/subgraphs/best-practices/grafting-hotfix.mdx index 1b661af00a2f..468f2603a6c6 100644 --- a/website/src/pages/tr/subgraphs/best-practices/grafting-hotfix.mdx +++ b/website/src/pages/tr/subgraphs/best-practices/grafting-hotfix.mdx @@ -14,12 +14,10 @@ This feature enables quick deployment of hotfixes for critical issues, eliminati ## Acil Güncellemelerde Aşılamanın Avantajları 1. **Hızlı Dağıtım** - - **Minimize Downtime**: When a Subgraph encounters a critical error and stops indexing, grafting enables you to deploy a fix immediately without waiting for re-indexing. - **Immediate Recovery**: The new Subgraph continues from the last indexed block, ensuring that data services remain uninterrupted. 2. **Veri Koruma** - - **Reuse Historical Data**: Grafting copies the existing data from the base Subgraph, so you don’t lose valuable historical records. - **Tutarlılık**: Tutarlı tarihsel verilere bağımlı uygulamalar için veri sürekliliğini sağlar. @@ -30,19 +28,16 @@ This feature enables quick deployment of hotfixes for critical issues, eliminati ## Acil Güncellemeler için Aşılama Kullanmak - Örnek Uygulamalar 1. **Aşılama Olmadan Başlangıç Dağıtımı** - - **Start Clean**: Always deploy your initial Subgraph without grafting to ensure that it’s stable and functions as expected. - **Test Thoroughly**: Validate the Subgraph’s performance to minimize the need for future hotfixes. 2. **Aşılama ile Acil Güncelleme Yapmak** - - **Sorunu Belirleme**: Kritik bir hata oluştuğunda, son başarılı endekslenmiş olayın blok numarasını belirleyin. - **Create a New Subgraph**: Develop a new Subgraph that includes the hotfix. - **Configure Grafting**: Use grafting to copy data up to the identified block number from the failed Subgraph. - **Deploy Quickly**: Publish the grafted Subgraph to restore service as soon as possible. 3. **Acil Güncelleme Sonrasındaki Aksiyonlar** - - **Monitor Performance**: Ensure the grafted Subgraph is indexing correctly and the hotfix resolves the issue. - **Republish Without Grafting**: Once stable, deploy a new version of the Subgraph without grafting for long-term maintenance. > Not: Aşılamaya süresiz olarak güvenmek önerilmez. Bu durum gelecekteki güncellemeleri ve bakımı karmaşık hale getirebilir. @@ -130,7 +125,6 @@ Suppose you have a Subgraph tracking a smart contract that has stopped indexing - **block**: Aşılama işleminin başlaması gereken blok numarası. 3. **Dağıtım Adımları** - - **Kodu Güncelleyin**: eşleme kodlarınıza (örneğin, handleWithdrawal kısmına) acil güncelleme uygulayın. - **Manifestoyu Ayarlayın**: Yukarıda gösterildiği gibi, `subgraph.yaml` dosyasını aşılama yapılandırmalarıyla güncelleyin. - **Subgraph'i Dağıtın**: diff --git a/website/src/pages/tr/subgraphs/developing/creating/install-the-cli.mdx b/website/src/pages/tr/subgraphs/developing/creating/install-the-cli.mdx index 08c282f651d6..43c1b5b8d37d 100644 --- a/website/src/pages/tr/subgraphs/developing/creating/install-the-cli.mdx +++ b/website/src/pages/tr/subgraphs/developing/creating/install-the-cli.mdx @@ -46,7 +46,6 @@ graph init \ ``` - Bu komut, sözleşme ABI'sini Etherscan’den almaya çalışır. - - Graph CLI, bir umumi RPC uç noktasına bağlıdır. Ara sıra başarısızlık beklenebilir, ancak genellikle yeniden denemeler sorunu çözer. Sorunlar devam ederse, yerel bir ABI kullanmayı düşünün. - İsteğe bağlı argümanlar eksikse, komut sizi bir etkileşimli forma yönlendirir. @@ -87,7 +86,6 @@ Options: The `graph add` command will fetch the ABI from Etherscan (unless an ABI path is specified with the `--abi` option) and creates a new `dataSource`, similar to how the `graph init` command creates a `dataSource` `--from-contract`, updating the schema and mappings accordingly. This allows you to index implementation contracts from their proxy contracts. - The `--merge-entities` option identifies how the developer would like to handle `entity` and `event` name conflicts: - - If `true`: the new `dataSource` should use existing `eventHandlers` & `entities`. - If `false`: a new `entity` & `event` handler should be created with `${dataSourceName}{EventName}`. diff --git a/website/src/pages/tr/subgraphs/developing/managing/deleting-a-subgraph.mdx b/website/src/pages/tr/subgraphs/developing/managing/deleting-a-subgraph.mdx index 23574d11eff3..190c6caf9547 100644 --- a/website/src/pages/tr/subgraphs/developing/managing/deleting-a-subgraph.mdx +++ b/website/src/pages/tr/subgraphs/developing/managing/deleting-a-subgraph.mdx @@ -17,7 +17,6 @@ Delete your Subgraph using [Subgraph Studio](https://thegraph.com/studio/). ![Delete-subgraph](/img/Delete-subgraph.png) 4. Depending on the Subgraph's status, you will be prompted with various options. - - If the Subgraph is not published, simply click “delete” and confirm. - If the Subgraph is published, you will need to confirm on your wallet before the Subgraph can be deleted from Studio. If a Subgraph is published to multiple networks, such as testnet and mainnet, additional steps may be required. diff --git a/website/src/pages/tr/subgraphs/explorer.mdx b/website/src/pages/tr/subgraphs/explorer.mdx index 95128bd87f9e..5000c65ceadd 100644 --- a/website/src/pages/tr/subgraphs/explorer.mdx +++ b/website/src/pages/tr/subgraphs/explorer.mdx @@ -26,7 +26,6 @@ Bir Subgraph'e tıkladığınızda aşağıdakileri yapabilirsiniz: - Oyun alanında (playground) sorguları test edin ve ağ detaylarından faydalanarak bilgili kararlar alın. - Kendi Subgraph'inize veya başkalarının Subgraph'lerine GRT sinyali göndererek Endeksleyicilere bunların önemini ve kalitesini bildirin. - - Bu kritik bir öneme sahiptir çünkü bir Subgraph'e sinyal vermek, onun endekslenmesini teşvik eder. Bu da, sonunda ağ üzerinde ön plana çıkıp sorgulara hizmet verebileceği anlamına gelir. ![Gezgin Görüntüsü 2](/img/Subgraph-Details.png) diff --git a/website/src/pages/tr/subgraphs/mcp/claude.mdx b/website/src/pages/tr/subgraphs/mcp/claude.mdx index 8b61438d2ab7..027b272cb942 100644 --- a/website/src/pages/tr/subgraphs/mcp/claude.mdx +++ b/website/src/pages/tr/subgraphs/mcp/claude.mdx @@ -85,7 +85,6 @@ Once you've entered your Gateway API key into your settings, save the file and r 2. **Find the Command Path** After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. - - Navigate to your `subgraph-mcp` directory in terminal - Run `pwd` to get the full path - Combine the output with `/target/release/subgraph-mcp` diff --git a/website/src/pages/tr/subgraphs/quick-start.mdx b/website/src/pages/tr/subgraphs/quick-start.mdx index f0687717220f..9eb62ae775d4 100644 --- a/website/src/pages/tr/subgraphs/quick-start.mdx +++ b/website/src/pages/tr/subgraphs/quick-start.mdx @@ -166,11 +166,9 @@ To customize your deployment, see [Publishing a Subgraph](/subgraphs/developing/ #### Adding signal to your Subgraph 1. To attract Indexers to query your Subgraph, you should add GRT curation signal to it. - - This action improves quality of service, reduces latency, and enhances network redundancy and availability for your Subgraph. 2. Endeksleme ödüllerine hak kazanan Endeksleyiciler sinyal miktarına bağlı olarak GRT ödülü alırlar. - - It’s recommended to curate at least 3,000 GRT to attract 3 Indexers. Check reward eligibility based on Subgraph feature usage and supported networks. To learn more about curation, read [Curating](/resources/roles/curating/). diff --git a/website/src/pages/uk/archived/arbitrum/arbitrum-faq.mdx b/website/src/pages/uk/archived/arbitrum/arbitrum-faq.mdx index 8e6d1bd8d962..4438fb3ef5aa 100644 --- a/website/src/pages/uk/archived/arbitrum/arbitrum-faq.mdx +++ b/website/src/pages/uk/archived/arbitrum/arbitrum-faq.mdx @@ -25,7 +25,6 @@ The Graph’s billing system accepts GRT on Arbitrum, and users will need ETH on Consequently, to pay for queries, you need GRT on Arbitrum. Here are a few different ways to achieve this: - If you already have GRT on Ethereum, you can bridge it to Arbitrum. You can do this via the GRT bridging option provided in Subgraph Studio or by using one of the following bridges: - - [The Arbitrum Bridge](https://bridge.arbitrum.io/?l2ChainId=42161) - [TransferTo](https://transferto.xyz/swap) diff --git a/website/src/pages/uk/indexing/overview.mdx b/website/src/pages/uk/indexing/overview.mdx index e2da100cbe73..bea439a53654 100644 --- a/website/src/pages/uk/indexing/overview.mdx +++ b/website/src/pages/uk/indexing/overview.mdx @@ -680,13 +680,11 @@ graph indexer actions execute approve Note that supported action types for allocation management have different input requirements: - `Allocate` - allocate stake to a specific Subgraph deployment - - required action params: - deploymentID - amount - `Unallocate` - close allocation, freeing up the stake to reallocate elsewhere - - required action params: - allocationID - deploymentID @@ -695,7 +693,6 @@ Note that supported action types for allocation management have different input - force (forces using the provided POI even if it doesn’t match what the graph-node provides) - `Reallocate` - atomically close allocation and open a fresh allocation for the same Subgraph deployment - - required action params: - allocationID - deploymentID diff --git a/website/src/pages/uk/indexing/tap.mdx b/website/src/pages/uk/indexing/tap.mdx index 477534d63201..e9667d498e0f 100644 --- a/website/src/pages/uk/indexing/tap.mdx +++ b/website/src/pages/uk/indexing/tap.mdx @@ -38,7 +38,6 @@ As long as you run `tap-agent` and `indexer-agent`, everything will be executed 3. `indexer-agent` takes all the last RAVS and sends redeem requests to the blockchain, which will update the value of `redeem_at`. 4. During the `` period, `indexer-agent` monitors if the blockchain has any reorganizations that revert the transaction. - - If it was reverted, the RAV is resent to the blockchain. If it was not reverted, it gets marked as `final`. ## Blockchain Addresses @@ -77,17 +76,14 @@ The required software version can be found [here](https://github.com/graphprotoc ### Steps 1. **Indexer Agent** - - Follow the [same process](https://github.com/graphprotocol/indexer/pkgs/container/indexer-agent#graph-protocol-indexer-components). - Give the new argument `--tap-subgraph-endpoint` to activate the new GraphTally codepaths and enable redeeming of RAVs. 2. **Indexer Service** - - Fully replace your current configuration with the [new Indexer Service rs](https://github.com/graphprotocol/indexer-rs). It's recommend that you use the [container image](https://github.com/orgs/graphprotocol/packages?repo_name=indexer-rs). - Like the older version, you can scale Indexer Service horizontally easily. It is still stateless. 3. **TAP Agent** - - Run _one_ single instance of [TAP Agent](https://github.com/graphprotocol/indexer-rs) at all times. It's recommend that you use the [container image](https://github.com/orgs/graphprotocol/packages?repo_name=indexer-rs). 4. **Configure Indexer Service and TAP Agent** diff --git a/website/src/pages/uk/resources/glossary.mdx b/website/src/pages/uk/resources/glossary.mdx index ef7f1d9c23b9..4206c0f6622b 100644 --- a/website/src/pages/uk/resources/glossary.mdx +++ b/website/src/pages/uk/resources/glossary.mdx @@ -15,7 +15,6 @@ title: Глосарій - **Indexer**: Network participants that run indexing nodes to index data from blockchains and serve GraphQL queries. - **Indexer Revenue Streams**: Indexers are rewarded in GRT with two components: query fee rebates and indexing rewards. - 1. **Query Fee Rebates**: Payments from Subgraph consumers for serving queries on the network. 2. **Indexing Rewards**: The rewards that Indexers receive for indexing Subgraphs. Indexing rewards are generated via new issuance of 3% GRT annually. @@ -43,7 +42,6 @@ title: Глосарій - **Epoch**: A unit of time within the network. Currently, one epoch is 6,646 blocks or approximately 1 day. - **Allocation**: An Indexer can allocate their total GRT stake (including Delegators' stake) towards Subgraphs that have been published on The Graph's decentralized network. Allocations can have different statuses: - 1. **Active**: An allocation is considered active when it is created onchain. This is called opening an allocation, and indicates to the network that the Indexer is actively indexing and serving queries for a particular Subgraph. Active allocations accrue indexing rewards proportional to the signal on the Subgraph, and the amount of GRT allocated. 2. **Closed**: An Indexer may claim the accrued indexing rewards on a given Subgraph by submitting a recent, and valid, Proof of Indexing (POI). This is known as closing an allocation. An allocation must have been open for a minimum of one epoch before it can be closed. The maximum allocation period is 28 epochs. If an Indexer leaves an allocation open beyond 28 epochs, it is known as a stale allocation. When an allocation is in the **Closed** state, a Fisherman can still open a dispute to challenge an Indexer for serving false data. diff --git a/website/src/pages/uk/resources/roles/delegating/undelegating.mdx b/website/src/pages/uk/resources/roles/delegating/undelegating.mdx index 8a22e8954fd9..5b98f68edbd7 100644 --- a/website/src/pages/uk/resources/roles/delegating/undelegating.mdx +++ b/website/src/pages/uk/resources/roles/delegating/undelegating.mdx @@ -13,13 +13,11 @@ Learn how to withdraw your delegated tokens through [Graph Explorer](https://the 1. Visit [Graph Explorer](https://thegraph.com/explorer). Please make sure you're on Explorer and **not** Subgraph Studio. 2. Click on your profile. You can find it on the top right corner of the page. - - Make sure that your wallet is connected. If it's not connected, you will see the "connect" button instead. 3. Once you're in your profile, click on the Delegating tab. In the Delegating tab, you can view the list of Indexers you have delegated to. 4. Click on the Indexer from which you wish to withdraw your tokens. - - Make sure to note the specific Indexer, as you will need to find them again to withdraw. 5. Select the "Undelegate" option by clicking on the three dots next to the Indexer on the right side, see image below: @@ -37,11 +35,9 @@ Learn how to withdraw your delegated tokens through [Graph Explorer](https://the ### Step-by-Step 1. Find your delegation transaction on Arbiscan. - - Here's an [example transaction on Arbiscan](https://arbiscan.io/tx/0xcf2110eac897099f821064445041031efb32786392bdbe7544a4cb7a6b2e4f9a) 2. Navigate to "Transaction Action" where you can find the staking extension contract: - - [This is the staking extension contract for the example listed above](https://arbiscan.io/address/0x00669A4CF01450B64E8A2A20E9b1FCB71E61eF03) 3. Then click on "Contract". ![Contract tab on Arbiscan, between NFT Transfers and Events](/img/arbiscan-contract.png) @@ -59,7 +55,6 @@ Learn how to withdraw your delegated tokens through [Graph Explorer](https://the 9. If you don't know how many tokens you delegated, you can call `getDelegation` on the Read Custom tab. You will need to paste your address (delegator address) and the address of the Indexer that you delegated to, as shown in the following screenshot: ![Both of the addresses needed](/img/get-delegate.png) - - This will return three numbers. The first number is the amount you can unstake. 10. After you have called `unstake`, you can withdraw after approximately 28 epochs (28 days) by calling the `withdraw` function. diff --git a/website/src/pages/uk/subgraphs/best-practices/grafting-hotfix.mdx b/website/src/pages/uk/subgraphs/best-practices/grafting-hotfix.mdx index 91ec6dff40bc..9301610e3c1b 100644 --- a/website/src/pages/uk/subgraphs/best-practices/grafting-hotfix.mdx +++ b/website/src/pages/uk/subgraphs/best-practices/grafting-hotfix.mdx @@ -14,12 +14,10 @@ This feature enables quick deployment of hotfixes for critical issues, eliminati ## Benefits of Grafting for Hotfixes 1. **Rapid Deployment** - - **Minimize Downtime**: When a Subgraph encounters a critical error and stops indexing, grafting enables you to deploy a fix immediately without waiting for re-indexing. - **Immediate Recovery**: The new Subgraph continues from the last indexed block, ensuring that data services remain uninterrupted. 2. **Data Preservation** - - **Reuse Historical Data**: Grafting copies the existing data from the base Subgraph, so you don’t lose valuable historical records. - **Consistency**: Maintains data continuity, which is crucial for applications relying on consistent historical data. @@ -30,19 +28,16 @@ This feature enables quick deployment of hotfixes for critical issues, eliminati ## Best Practices When Using Grafting for Hotfixes 1. **Initial Deployment Without Grafting** - - **Start Clean**: Always deploy your initial Subgraph without grafting to ensure that it’s stable and functions as expected. - **Test Thoroughly**: Validate the Subgraph’s performance to minimize the need for future hotfixes. 2. **Implementing the Hotfix with Grafting** - - **Identify the Issue**: When a critical error occurs, determine the block number of the last successfully indexed event. - **Create a New Subgraph**: Develop a new Subgraph that includes the hotfix. - **Configure Grafting**: Use grafting to copy data up to the identified block number from the failed Subgraph. - **Deploy Quickly**: Publish the grafted Subgraph to restore service as soon as possible. 3. **Post-Hotfix Actions** - - **Monitor Performance**: Ensure the grafted Subgraph is indexing correctly and the hotfix resolves the issue. - **Republish Without Grafting**: Once stable, deploy a new version of the Subgraph without grafting for long-term maintenance. > Note: Relying on grafting indefinitely is not recommended as it can complicate future updates and maintenance. @@ -130,7 +125,6 @@ Suppose you have a Subgraph tracking a smart contract that has stopped indexing - **block**: Block number where grafting should begin. 3. **Deployment Steps** - - **Update the Code**: Implement the hotfix in your mapping scripts (e.g., handleWithdrawal). - **Adjust the Manifest**: As shown above, update the `subgraph.yaml` with grafting configurations. - **Deploy the Subgraph**: diff --git a/website/src/pages/uk/subgraphs/developing/creating/install-the-cli.mdx b/website/src/pages/uk/subgraphs/developing/creating/install-the-cli.mdx index cac462d8e960..16cd6a31140e 100644 --- a/website/src/pages/uk/subgraphs/developing/creating/install-the-cli.mdx +++ b/website/src/pages/uk/subgraphs/developing/creating/install-the-cli.mdx @@ -46,7 +46,6 @@ graph init \ ``` - The command tries to retrieve the contract ABI from Etherscan. - - The Graph CLI relies on a public RPC endpoint. While occasional failures are expected, retries typically resolve this issue. If failures persist, consider using a local ABI. - If any of the optional arguments are missing, it guides you through an interactive form. @@ -87,7 +86,6 @@ Options: The `graph add` command will fetch the ABI from Etherscan (unless an ABI path is specified with the `--abi` option) and creates a new `dataSource`, similar to how the `graph init` command creates a `dataSource` `--from-contract`, updating the schema and mappings accordingly. This allows you to index implementation contracts from their proxy contracts. - The `--merge-entities` option identifies how the developer would like to handle `entity` and `event` name conflicts: - - If `true`: the new `dataSource` should use existing `eventHandlers` & `entities`. - If `false`: a new `entity` & `event` handler should be created with `${dataSourceName}{EventName}`. diff --git a/website/src/pages/uk/subgraphs/developing/managing/deleting-a-subgraph.mdx b/website/src/pages/uk/subgraphs/developing/managing/deleting-a-subgraph.mdx index b8c2330ca49d..f842a0e04ac4 100644 --- a/website/src/pages/uk/subgraphs/developing/managing/deleting-a-subgraph.mdx +++ b/website/src/pages/uk/subgraphs/developing/managing/deleting-a-subgraph.mdx @@ -17,7 +17,6 @@ Delete your Subgraph using [Subgraph Studio](https://thegraph.com/studio/). ![Delete-subgraph](/img/Delete-subgraph.png) 4. Depending on the Subgraph's status, you will be prompted with various options. - - If the Subgraph is not published, simply click “delete” and confirm. - If the Subgraph is published, you will need to confirm on your wallet before the Subgraph can be deleted from Studio. If a Subgraph is published to multiple networks, such as testnet and mainnet, additional steps may be required. diff --git a/website/src/pages/uk/subgraphs/explorer.mdx b/website/src/pages/uk/subgraphs/explorer.mdx index fd1259ea78b1..8830ad6c050c 100644 --- a/website/src/pages/uk/subgraphs/explorer.mdx +++ b/website/src/pages/uk/subgraphs/explorer.mdx @@ -26,7 +26,6 @@ When you click into a Subgraph, you will be able to do the following: - Test queries in the playground and be able to leverage network details to make informed decisions. - Signal GRT on your own Subgraph or the Subgraphs of others to make indexers aware of its importance and quality. - - This is critical because signaling on a Subgraph incentivizes it to be indexed, meaning it’ll eventually surface on the network to serve queries. ![Explorer Image 2](/img/Subgraph-Details.png) diff --git a/website/src/pages/uk/subgraphs/mcp/claude.mdx b/website/src/pages/uk/subgraphs/mcp/claude.mdx index 8b61438d2ab7..027b272cb942 100644 --- a/website/src/pages/uk/subgraphs/mcp/claude.mdx +++ b/website/src/pages/uk/subgraphs/mcp/claude.mdx @@ -85,7 +85,6 @@ Once you've entered your Gateway API key into your settings, save the file and r 2. **Find the Command Path** After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. - - Navigate to your `subgraph-mcp` directory in terminal - Run `pwd` to get the full path - Combine the output with `/target/release/subgraph-mcp` diff --git a/website/src/pages/uk/subgraphs/quick-start.mdx b/website/src/pages/uk/subgraphs/quick-start.mdx index 8ed3c12ffaa9..59d859d67588 100644 --- a/website/src/pages/uk/subgraphs/quick-start.mdx +++ b/website/src/pages/uk/subgraphs/quick-start.mdx @@ -166,11 +166,9 @@ To customize your deployment, see [Publishing a Subgraph](/subgraphs/developing/ #### Adding signal to your Subgraph 1. To attract Indexers to query your Subgraph, you should add GRT curation signal to it. - - This action improves quality of service, reduces latency, and enhances network redundancy and availability for your Subgraph. 2. If eligible for indexing rewards, Indexers receive GRT rewards based on the signaled amount. - - It’s recommended to curate at least 3,000 GRT to attract 3 Indexers. Check reward eligibility based on Subgraph feature usage and supported networks. To learn more about curation, read [Curating](/resources/roles/curating/). diff --git a/website/src/pages/ur/archived/arbitrum/arbitrum-faq.mdx b/website/src/pages/ur/archived/arbitrum/arbitrum-faq.mdx index 1483cf6b2a4e..7bf006a09a39 100644 --- a/website/src/pages/ur/archived/arbitrum/arbitrum-faq.mdx +++ b/website/src/pages/ur/archived/arbitrum/arbitrum-faq.mdx @@ -25,7 +25,6 @@ The Graph’s billing system accepts GRT on Arbitrum, and users will need ETH on Consequently, to pay for queries, you need GRT on Arbitrum. Here are a few different ways to achieve this: - If you already have GRT on Ethereum, you can bridge it to Arbitrum. You can do this via the GRT bridging option provided in Subgraph Studio or by using one of the following bridges: - - [The Arbitrum Bridge](https://bridge.arbitrum.io/?l2ChainId=42161) - [TransferTo](https://transferto.xyz/swap) diff --git a/website/src/pages/ur/indexing/overview.mdx b/website/src/pages/ur/indexing/overview.mdx index 22bc108de688..4198190b1254 100644 --- a/website/src/pages/ur/indexing/overview.mdx +++ b/website/src/pages/ur/indexing/overview.mdx @@ -680,13 +680,11 @@ graph indexer actions execute approve Note that supported action types for allocation management have different input requirements: - `Allocate` - allocate stake to a specific Subgraph deployment - - required action params: - deploymentID - amount - `Unallocate` - close allocation, freeing up the stake to reallocate elsewhere - - required action params: - allocationID - deploymentID @@ -695,7 +693,6 @@ Note that supported action types for allocation management have different input - force (forces using the provided POI even if it doesn’t match what the graph-node provides) - `Reallocate` - atomically close allocation and open a fresh allocation for the same Subgraph deployment - - required action params: - allocationID - deploymentID diff --git a/website/src/pages/ur/indexing/tap.mdx b/website/src/pages/ur/indexing/tap.mdx index b7347fb63141..64ebd5b363f7 100644 --- a/website/src/pages/ur/indexing/tap.mdx +++ b/website/src/pages/ur/indexing/tap.mdx @@ -38,7 +38,6 @@ As long as you run `tap-agent` and `indexer-agent`, everything will be executed 3. `indexer-agent` takes all the last RAVS and sends redeem requests to the blockchain, which will update the value of `redeem_at`. 4. During the `` period, `indexer-agent` monitors if the blockchain has any reorganizations that revert the transaction. - - If it was reverted, the RAV is resent to the blockchain. If it was not reverted, it gets marked as `final`. ## Blockchain Addresses @@ -77,17 +76,14 @@ The required software version can be found [here](https://github.com/graphprotoc ### Steps 1. **Indexer Agent** - - Follow the [same process](https://github.com/graphprotocol/indexer/pkgs/container/indexer-agent#graph-protocol-indexer-components). - Give the new argument `--tap-subgraph-endpoint` to activate the new GraphTally codepaths and enable redeeming of RAVs. 2. **Indexer Service** - - Fully replace your current configuration with the [new Indexer Service rs](https://github.com/graphprotocol/indexer-rs). It's recommend that you use the [container image](https://github.com/orgs/graphprotocol/packages?repo_name=indexer-rs). - Like the older version, you can scale Indexer Service horizontally easily. It is still stateless. 3. **TAP Agent** - - Run _one_ single instance of [TAP Agent](https://github.com/graphprotocol/indexer-rs) at all times. It's recommend that you use the [container image](https://github.com/orgs/graphprotocol/packages?repo_name=indexer-rs). 4. **Configure Indexer Service and TAP Agent** diff --git a/website/src/pages/ur/resources/glossary.mdx b/website/src/pages/ur/resources/glossary.mdx index 8b3d3ba9814c..9fdca06e33ed 100644 --- a/website/src/pages/ur/resources/glossary.mdx +++ b/website/src/pages/ur/resources/glossary.mdx @@ -15,7 +15,6 @@ title: لغت - **Indexer**: Network participants that run indexing nodes to index data from blockchains and serve GraphQL queries. - **Indexer Revenue Streams**: Indexers are rewarded in GRT with two components: query fee rebates and indexing rewards. - 1. **Query Fee Rebates**: Payments from Subgraph consumers for serving queries on the network. 2. **Indexing Rewards**: The rewards that Indexers receive for indexing Subgraphs. Indexing rewards are generated via new issuance of 3% GRT annually. @@ -43,7 +42,6 @@ title: لغت - **Epoch**: A unit of time within the network. Currently, one epoch is 6,646 blocks or approximately 1 day. - **Allocation**: An Indexer can allocate their total GRT stake (including Delegators' stake) towards Subgraphs that have been published on The Graph's decentralized network. Allocations can have different statuses: - 1. **Active**: An allocation is considered active when it is created onchain. This is called opening an allocation, and indicates to the network that the Indexer is actively indexing and serving queries for a particular Subgraph. Active allocations accrue indexing rewards proportional to the signal on the Subgraph, and the amount of GRT allocated. 2. **Closed**: An Indexer may claim the accrued indexing rewards on a given Subgraph by submitting a recent, and valid, Proof of Indexing (POI). This is known as closing an allocation. An allocation must have been open for a minimum of one epoch before it can be closed. The maximum allocation period is 28 epochs. If an Indexer leaves an allocation open beyond 28 epochs, it is known as a stale allocation. When an allocation is in the **Closed** state, a Fisherman can still open a dispute to challenge an Indexer for serving false data. diff --git a/website/src/pages/ur/resources/roles/delegating/undelegating.mdx b/website/src/pages/ur/resources/roles/delegating/undelegating.mdx index 598eb5897993..15d2cad2162f 100644 --- a/website/src/pages/ur/resources/roles/delegating/undelegating.mdx +++ b/website/src/pages/ur/resources/roles/delegating/undelegating.mdx @@ -13,13 +13,11 @@ Learn how to withdraw your delegated tokens through [Graph Explorer](https://the 1. Visit [Graph Explorer](https://thegraph.com/explorer). Please make sure you're on Explorer and **not** Subgraph Studio. 2. Click on your profile. You can find it on the top right corner of the page. - - Make sure that your wallet is connected. If it's not connected, you will see the "connect" button instead. 3. Once you're in your profile, click on the Delegating tab. In the Delegating tab, you can view the list of Indexers you have delegated to. 4. Click on the Indexer from which you wish to withdraw your tokens. - - Make sure to note the specific Indexer, as you will need to find them again to withdraw. 5. Select the "Undelegate" option by clicking on the three dots next to the Indexer on the right side, see image below: @@ -37,11 +35,9 @@ Learn how to withdraw your delegated tokens through [Graph Explorer](https://the ### Step-by-Step 1. Find your delegation transaction on Arbiscan. - - Here's an [example transaction on Arbiscan](https://arbiscan.io/tx/0xcf2110eac897099f821064445041031efb32786392bdbe7544a4cb7a6b2e4f9a) 2. Navigate to "Transaction Action" where you can find the staking extension contract: - - [This is the staking extension contract for the example listed above](https://arbiscan.io/address/0x00669A4CF01450B64E8A2A20E9b1FCB71E61eF03) 3. Then click on "Contract". ![Contract tab on Arbiscan, between NFT Transfers and Events](/img/arbiscan-contract.png) @@ -59,7 +55,6 @@ Learn how to withdraw your delegated tokens through [Graph Explorer](https://the 9. If you don't know how many tokens you delegated, you can call `getDelegation` on the Read Custom tab. You will need to paste your address (delegator address) and the address of the Indexer that you delegated to, as shown in the following screenshot: ![Both of the addresses needed](/img/get-delegate.png) - - This will return three numbers. The first number is the amount you can unstake. 10. After you have called `unstake`, you can withdraw after approximately 28 epochs (28 days) by calling the `withdraw` function. diff --git a/website/src/pages/ur/subgraphs/best-practices/grafting-hotfix.mdx b/website/src/pages/ur/subgraphs/best-practices/grafting-hotfix.mdx index 89b675d3acab..256c64ca0b44 100644 --- a/website/src/pages/ur/subgraphs/best-practices/grafting-hotfix.mdx +++ b/website/src/pages/ur/subgraphs/best-practices/grafting-hotfix.mdx @@ -14,12 +14,10 @@ This feature enables quick deployment of hotfixes for critical issues, eliminati ## Benefits of Grafting for Hotfixes 1. **Rapid Deployment** - - **Minimize Downtime**: When a Subgraph encounters a critical error and stops indexing, grafting enables you to deploy a fix immediately without waiting for re-indexing. - **Immediate Recovery**: The new Subgraph continues from the last indexed block, ensuring that data services remain uninterrupted. 2. **Data Preservation** - - **Reuse Historical Data**: Grafting copies the existing data from the base Subgraph, so you don’t lose valuable historical records. - **Consistency**: Maintains data continuity, which is crucial for applications relying on consistent historical data. @@ -30,19 +28,16 @@ This feature enables quick deployment of hotfixes for critical issues, eliminati ## Best Practices When Using Grafting for Hotfixes 1. **Initial Deployment Without Grafting** - - **Start Clean**: Always deploy your initial Subgraph without grafting to ensure that it’s stable and functions as expected. - **Test Thoroughly**: Validate the Subgraph’s performance to minimize the need for future hotfixes. 2. **Implementing the Hotfix with Grafting** - - **Identify the Issue**: When a critical error occurs, determine the block number of the last successfully indexed event. - **Create a New Subgraph**: Develop a new Subgraph that includes the hotfix. - **Configure Grafting**: Use grafting to copy data up to the identified block number from the failed Subgraph. - **Deploy Quickly**: Publish the grafted Subgraph to restore service as soon as possible. 3. **Post-Hotfix Actions** - - **Monitor Performance**: Ensure the grafted Subgraph is indexing correctly and the hotfix resolves the issue. - **Republish Without Grafting**: Once stable, deploy a new version of the Subgraph without grafting for long-term maintenance. > Note: Relying on grafting indefinitely is not recommended as it can complicate future updates and maintenance. @@ -130,7 +125,6 @@ Suppose you have a Subgraph tracking a smart contract that has stopped indexing - **block**: Block number where grafting should begin. 3. **Deployment Steps** - - **Update the Code**: Implement the hotfix in your mapping scripts (e.g., handleWithdrawal). - **Adjust the Manifest**: As shown above, update the `subgraph.yaml` with grafting configurations. - **Deploy the Subgraph**: diff --git a/website/src/pages/ur/subgraphs/developing/creating/install-the-cli.mdx b/website/src/pages/ur/subgraphs/developing/creating/install-the-cli.mdx index fc2b95935dc4..6537ad2f6194 100644 --- a/website/src/pages/ur/subgraphs/developing/creating/install-the-cli.mdx +++ b/website/src/pages/ur/subgraphs/developing/creating/install-the-cli.mdx @@ -46,7 +46,6 @@ graph init \ ``` - The command tries to retrieve the contract ABI from Etherscan. - - The Graph CLI relies on a public RPC endpoint. While occasional failures are expected, retries typically resolve this issue. If failures persist, consider using a local ABI. - If any of the optional arguments are missing, it guides you through an interactive form. @@ -87,7 +86,6 @@ Options: The `graph add` command will fetch the ABI from Etherscan (unless an ABI path is specified with the `--abi` option) and creates a new `dataSource`, similar to how the `graph init` command creates a `dataSource` `--from-contract`, updating the schema and mappings accordingly. This allows you to index implementation contracts from their proxy contracts. - The `--merge-entities` option identifies how the developer would like to handle `entity` and `event` name conflicts: - - If `true`: the new `dataSource` should use existing `eventHandlers` & `entities`. - If `false`: a new `entity` & `event` handler should be created with `${dataSourceName}{EventName}`. diff --git a/website/src/pages/ur/subgraphs/developing/managing/deleting-a-subgraph.mdx b/website/src/pages/ur/subgraphs/developing/managing/deleting-a-subgraph.mdx index b8c2330ca49d..f842a0e04ac4 100644 --- a/website/src/pages/ur/subgraphs/developing/managing/deleting-a-subgraph.mdx +++ b/website/src/pages/ur/subgraphs/developing/managing/deleting-a-subgraph.mdx @@ -17,7 +17,6 @@ Delete your Subgraph using [Subgraph Studio](https://thegraph.com/studio/). ![Delete-subgraph](/img/Delete-subgraph.png) 4. Depending on the Subgraph's status, you will be prompted with various options. - - If the Subgraph is not published, simply click “delete” and confirm. - If the Subgraph is published, you will need to confirm on your wallet before the Subgraph can be deleted from Studio. If a Subgraph is published to multiple networks, such as testnet and mainnet, additional steps may be required. diff --git a/website/src/pages/ur/subgraphs/explorer.mdx b/website/src/pages/ur/subgraphs/explorer.mdx index 6074ff5c5b2f..3b5719a70b1c 100644 --- a/website/src/pages/ur/subgraphs/explorer.mdx +++ b/website/src/pages/ur/subgraphs/explorer.mdx @@ -26,7 +26,6 @@ When you click into a Subgraph, you will be able to do the following: - Test queries in the playground and be able to leverage network details to make informed decisions. - Signal GRT on your own Subgraph or the Subgraphs of others to make indexers aware of its importance and quality. - - This is critical because signaling on a Subgraph incentivizes it to be indexed, meaning it’ll eventually surface on the network to serve queries. ![Explorer Image 2](/img/Subgraph-Details.png) diff --git a/website/src/pages/ur/subgraphs/mcp/claude.mdx b/website/src/pages/ur/subgraphs/mcp/claude.mdx index 8b61438d2ab7..027b272cb942 100644 --- a/website/src/pages/ur/subgraphs/mcp/claude.mdx +++ b/website/src/pages/ur/subgraphs/mcp/claude.mdx @@ -85,7 +85,6 @@ Once you've entered your Gateway API key into your settings, save the file and r 2. **Find the Command Path** After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. - - Navigate to your `subgraph-mcp` directory in terminal - Run `pwd` to get the full path - Combine the output with `/target/release/subgraph-mcp` diff --git a/website/src/pages/ur/subgraphs/quick-start.mdx b/website/src/pages/ur/subgraphs/quick-start.mdx index 280a19a8a3d9..4c34d481913d 100644 --- a/website/src/pages/ur/subgraphs/quick-start.mdx +++ b/website/src/pages/ur/subgraphs/quick-start.mdx @@ -166,11 +166,9 @@ To customize your deployment, see [Publishing a Subgraph](/subgraphs/developing/ #### Adding signal to your Subgraph 1. To attract Indexers to query your Subgraph, you should add GRT curation signal to it. - - This action improves quality of service, reduces latency, and enhances network redundancy and availability for your Subgraph. 2. If eligible for indexing rewards, Indexers receive GRT rewards based on the signaled amount. - - It’s recommended to curate at least 3,000 GRT to attract 3 Indexers. Check reward eligibility based on Subgraph feature usage and supported networks. To learn more about curation, read [Curating](/resources/roles/curating/). diff --git a/website/src/pages/vi/archived/arbitrum/arbitrum-faq.mdx b/website/src/pages/vi/archived/arbitrum/arbitrum-faq.mdx index d121f5a2d0f3..270a5f547a74 100644 --- a/website/src/pages/vi/archived/arbitrum/arbitrum-faq.mdx +++ b/website/src/pages/vi/archived/arbitrum/arbitrum-faq.mdx @@ -25,7 +25,6 @@ The Graph’s billing system accepts GRT on Arbitrum, and users will need ETH on Consequently, to pay for queries, you need GRT on Arbitrum. Here are a few different ways to achieve this: - If you already have GRT on Ethereum, you can bridge it to Arbitrum. You can do this via the GRT bridging option provided in Subgraph Studio or by using one of the following bridges: - - [The Arbitrum Bridge](https://bridge.arbitrum.io/?l2ChainId=42161) - [TransferTo](https://transferto.xyz/swap) diff --git a/website/src/pages/vi/indexing/overview.mdx b/website/src/pages/vi/indexing/overview.mdx index 88daf48cff6d..c8572a2cd18d 100644 --- a/website/src/pages/vi/indexing/overview.mdx +++ b/website/src/pages/vi/indexing/overview.mdx @@ -680,13 +680,11 @@ graph indexer actions execute approve Note that supported action types for allocation management have different input requirements: - `Allocate` - allocate stake to a specific Subgraph deployment - - required action params: - deploymentID - amount - `Unallocate` - close allocation, freeing up the stake to reallocate elsewhere - - required action params: - allocationID - deploymentID @@ -695,7 +693,6 @@ Note that supported action types for allocation management have different input - force (forces using the provided POI even if it doesn’t match what the graph-node provides) - `Reallocate` - atomically close allocation and open a fresh allocation for the same Subgraph deployment - - required action params: - allocationID - deploymentID diff --git a/website/src/pages/vi/indexing/tap.mdx b/website/src/pages/vi/indexing/tap.mdx index a754e67819a3..59f33b3e9ac4 100644 --- a/website/src/pages/vi/indexing/tap.mdx +++ b/website/src/pages/vi/indexing/tap.mdx @@ -38,7 +38,6 @@ As long as you run `tap-agent` and `indexer-agent`, everything will be executed 3. `indexer-agent` takes all the last RAVS and sends redeem requests to the blockchain, which will update the value of `redeem_at`. 4. During the `` period, `indexer-agent` monitors if the blockchain has any reorganizations that revert the transaction. - - If it was reverted, the RAV is resent to the blockchain. If it was not reverted, it gets marked as `final`. ## Blockchain Addresses @@ -77,17 +76,14 @@ The required software version can be found [here](https://github.com/graphprotoc ### Steps 1. **Indexer Agent** - - Follow the [same process](https://github.com/graphprotocol/indexer/pkgs/container/indexer-agent#graph-protocol-indexer-components). - Give the new argument `--tap-subgraph-endpoint` to activate the new GraphTally codepaths and enable redeeming of RAVs. 2. **Indexer Service** - - Fully replace your current configuration with the [new Indexer Service rs](https://github.com/graphprotocol/indexer-rs). It's recommend that you use the [container image](https://github.com/orgs/graphprotocol/packages?repo_name=indexer-rs). - Like the older version, you can scale Indexer Service horizontally easily. It is still stateless. 3. **TAP Agent** - - Run _one_ single instance of [TAP Agent](https://github.com/graphprotocol/indexer-rs) at all times. It's recommend that you use the [container image](https://github.com/orgs/graphprotocol/packages?repo_name=indexer-rs). 4. **Configure Indexer Service and TAP Agent** diff --git a/website/src/pages/vi/resources/glossary.mdx b/website/src/pages/vi/resources/glossary.mdx index 4c5ad55cd0d3..31402db1084a 100644 --- a/website/src/pages/vi/resources/glossary.mdx +++ b/website/src/pages/vi/resources/glossary.mdx @@ -15,7 +15,6 @@ title: Glossary - **Indexer**: Network participants that run indexing nodes to index data from blockchains and serve GraphQL queries. - **Indexer Revenue Streams**: Indexers are rewarded in GRT with two components: query fee rebates and indexing rewards. - 1. **Query Fee Rebates**: Payments from Subgraph consumers for serving queries on the network. 2. **Indexing Rewards**: The rewards that Indexers receive for indexing Subgraphs. Indexing rewards are generated via new issuance of 3% GRT annually. @@ -43,7 +42,6 @@ title: Glossary - **Epoch**: A unit of time within the network. Currently, one epoch is 6,646 blocks or approximately 1 day. - **Allocation**: An Indexer can allocate their total GRT stake (including Delegators' stake) towards Subgraphs that have been published on The Graph's decentralized network. Allocations can have different statuses: - 1. **Active**: An allocation is considered active when it is created onchain. This is called opening an allocation, and indicates to the network that the Indexer is actively indexing and serving queries for a particular Subgraph. Active allocations accrue indexing rewards proportional to the signal on the Subgraph, and the amount of GRT allocated. 2. **Closed**: An Indexer may claim the accrued indexing rewards on a given Subgraph by submitting a recent, and valid, Proof of Indexing (POI). This is known as closing an allocation. An allocation must have been open for a minimum of one epoch before it can be closed. The maximum allocation period is 28 epochs. If an Indexer leaves an allocation open beyond 28 epochs, it is known as a stale allocation. When an allocation is in the **Closed** state, a Fisherman can still open a dispute to challenge an Indexer for serving false data. diff --git a/website/src/pages/vi/resources/roles/delegating/undelegating.mdx b/website/src/pages/vi/resources/roles/delegating/undelegating.mdx index c3e31e653941..9c10e47eb771 100644 --- a/website/src/pages/vi/resources/roles/delegating/undelegating.mdx +++ b/website/src/pages/vi/resources/roles/delegating/undelegating.mdx @@ -13,13 +13,11 @@ Learn how to withdraw your delegated tokens through [Graph Explorer](https://the 1. Visit [Graph Explorer](https://thegraph.com/explorer). Please make sure you're on Explorer and **not** Subgraph Studio. 2. Click on your profile. You can find it on the top right corner of the page. - - Make sure that your wallet is connected. If it's not connected, you will see the "connect" button instead. 3. Once you're in your profile, click on the Delegating tab. In the Delegating tab, you can view the list of Indexers you have delegated to. 4. Click on the Indexer from which you wish to withdraw your tokens. - - Make sure to note the specific Indexer, as you will need to find them again to withdraw. 5. Select the "Undelegate" option by clicking on the three dots next to the Indexer on the right side, see image below: @@ -37,11 +35,9 @@ Learn how to withdraw your delegated tokens through [Graph Explorer](https://the ### Step-by-Step 1. Find your delegation transaction on Arbiscan. - - Here's an [example transaction on Arbiscan](https://arbiscan.io/tx/0xcf2110eac897099f821064445041031efb32786392bdbe7544a4cb7a6b2e4f9a) 2. Navigate to "Transaction Action" where you can find the staking extension contract: - - [This is the staking extension contract for the example listed above](https://arbiscan.io/address/0x00669A4CF01450B64E8A2A20E9b1FCB71E61eF03) 3. Then click on "Contract". ![Contract tab on Arbiscan, between NFT Transfers and Events](/img/arbiscan-contract.png) @@ -59,7 +55,6 @@ Learn how to withdraw your delegated tokens through [Graph Explorer](https://the 9. If you don't know how many tokens you delegated, you can call `getDelegation` on the Read Custom tab. You will need to paste your address (delegator address) and the address of the Indexer that you delegated to, as shown in the following screenshot: ![Both of the addresses needed](/img/get-delegate.png) - - This will return three numbers. The first number is the amount you can unstake. 10. After you have called `unstake`, you can withdraw after approximately 28 epochs (28 days) by calling the `withdraw` function. diff --git a/website/src/pages/vi/subgraphs/best-practices/grafting-hotfix.mdx b/website/src/pages/vi/subgraphs/best-practices/grafting-hotfix.mdx index 79ac8203aaef..4aa69ac21d97 100644 --- a/website/src/pages/vi/subgraphs/best-practices/grafting-hotfix.mdx +++ b/website/src/pages/vi/subgraphs/best-practices/grafting-hotfix.mdx @@ -14,12 +14,10 @@ This feature enables quick deployment of hotfixes for critical issues, eliminati ## Benefits of Grafting for Hotfixes 1. **Rapid Deployment** - - **Minimize Downtime**: When a Subgraph encounters a critical error and stops indexing, grafting enables you to deploy a fix immediately without waiting for re-indexing. - **Immediate Recovery**: The new Subgraph continues from the last indexed block, ensuring that data services remain uninterrupted. 2. **Data Preservation** - - **Reuse Historical Data**: Grafting copies the existing data from the base Subgraph, so you don’t lose valuable historical records. - **Consistency**: Maintains data continuity, which is crucial for applications relying on consistent historical data. @@ -30,19 +28,16 @@ This feature enables quick deployment of hotfixes for critical issues, eliminati ## Best Practices When Using Grafting for Hotfixes 1. **Initial Deployment Without Grafting** - - **Start Clean**: Always deploy your initial Subgraph without grafting to ensure that it’s stable and functions as expected. - **Test Thoroughly**: Validate the Subgraph’s performance to minimize the need for future hotfixes. 2. **Implementing the Hotfix with Grafting** - - **Identify the Issue**: When a critical error occurs, determine the block number of the last successfully indexed event. - **Create a New Subgraph**: Develop a new Subgraph that includes the hotfix. - **Configure Grafting**: Use grafting to copy data up to the identified block number from the failed Subgraph. - **Deploy Quickly**: Publish the grafted Subgraph to restore service as soon as possible. 3. **Post-Hotfix Actions** - - **Monitor Performance**: Ensure the grafted Subgraph is indexing correctly and the hotfix resolves the issue. - **Republish Without Grafting**: Once stable, deploy a new version of the Subgraph without grafting for long-term maintenance. > Note: Relying on grafting indefinitely is not recommended as it can complicate future updates and maintenance. @@ -130,7 +125,6 @@ Suppose you have a Subgraph tracking a smart contract that has stopped indexing - **block**: Block number where grafting should begin. 3. **Deployment Steps** - - **Update the Code**: Implement the hotfix in your mapping scripts (e.g., handleWithdrawal). - **Adjust the Manifest**: As shown above, update the `subgraph.yaml` with grafting configurations. - **Deploy the Subgraph**: diff --git a/website/src/pages/vi/subgraphs/developing/creating/install-the-cli.mdx b/website/src/pages/vi/subgraphs/developing/creating/install-the-cli.mdx index f9573b198f89..ad530b365515 100644 --- a/website/src/pages/vi/subgraphs/developing/creating/install-the-cli.mdx +++ b/website/src/pages/vi/subgraphs/developing/creating/install-the-cli.mdx @@ -46,7 +46,6 @@ graph init \ ``` - The command tries to retrieve the contract ABI from Etherscan. - - The Graph CLI relies on a public RPC endpoint. While occasional failures are expected, retries typically resolve this issue. If failures persist, consider using a local ABI. - If any of the optional arguments are missing, it guides you through an interactive form. @@ -87,7 +86,6 @@ Options: The `graph add` command will fetch the ABI from Etherscan (unless an ABI path is specified with the `--abi` option) and creates a new `dataSource`, similar to how the `graph init` command creates a `dataSource` `--from-contract`, updating the schema and mappings accordingly. This allows you to index implementation contracts from their proxy contracts. - The `--merge-entities` option identifies how the developer would like to handle `entity` and `event` name conflicts: - - If `true`: the new `dataSource` should use existing `eventHandlers` & `entities`. - If `false`: a new `entity` & `event` handler should be created with `${dataSourceName}{EventName}`. diff --git a/website/src/pages/vi/subgraphs/developing/managing/deleting-a-subgraph.mdx b/website/src/pages/vi/subgraphs/developing/managing/deleting-a-subgraph.mdx index b8c2330ca49d..f842a0e04ac4 100644 --- a/website/src/pages/vi/subgraphs/developing/managing/deleting-a-subgraph.mdx +++ b/website/src/pages/vi/subgraphs/developing/managing/deleting-a-subgraph.mdx @@ -17,7 +17,6 @@ Delete your Subgraph using [Subgraph Studio](https://thegraph.com/studio/). ![Delete-subgraph](/img/Delete-subgraph.png) 4. Depending on the Subgraph's status, you will be prompted with various options. - - If the Subgraph is not published, simply click “delete” and confirm. - If the Subgraph is published, you will need to confirm on your wallet before the Subgraph can be deleted from Studio. If a Subgraph is published to multiple networks, such as testnet and mainnet, additional steps may be required. diff --git a/website/src/pages/vi/subgraphs/explorer.mdx b/website/src/pages/vi/subgraphs/explorer.mdx index 2a5747208705..fd125d66526f 100644 --- a/website/src/pages/vi/subgraphs/explorer.mdx +++ b/website/src/pages/vi/subgraphs/explorer.mdx @@ -26,7 +26,6 @@ When you click into a Subgraph, you will be able to do the following: - Test queries in the playground and be able to leverage network details to make informed decisions. - Signal GRT on your own Subgraph or the Subgraphs of others to make indexers aware of its importance and quality. - - This is critical because signaling on a Subgraph incentivizes it to be indexed, meaning it’ll eventually surface on the network to serve queries. ![Explorer Image 2](/img/Subgraph-Details.png) diff --git a/website/src/pages/vi/subgraphs/mcp/claude.mdx b/website/src/pages/vi/subgraphs/mcp/claude.mdx index 8b61438d2ab7..027b272cb942 100644 --- a/website/src/pages/vi/subgraphs/mcp/claude.mdx +++ b/website/src/pages/vi/subgraphs/mcp/claude.mdx @@ -85,7 +85,6 @@ Once you've entered your Gateway API key into your settings, save the file and r 2. **Find the Command Path** After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. - - Navigate to your `subgraph-mcp` directory in terminal - Run `pwd` to get the full path - Combine the output with `/target/release/subgraph-mcp` diff --git a/website/src/pages/vi/subgraphs/quick-start.mdx b/website/src/pages/vi/subgraphs/quick-start.mdx index 0af59e0b4c46..c09444859562 100644 --- a/website/src/pages/vi/subgraphs/quick-start.mdx +++ b/website/src/pages/vi/subgraphs/quick-start.mdx @@ -166,11 +166,9 @@ To customize your deployment, see [Publishing a Subgraph](/subgraphs/developing/ #### Adding signal to your Subgraph 1. To attract Indexers to query your Subgraph, you should add GRT curation signal to it. - - This action improves quality of service, reduces latency, and enhances network redundancy and availability for your Subgraph. 2. If eligible for indexing rewards, Indexers receive GRT rewards based on the signaled amount. - - It’s recommended to curate at least 3,000 GRT to attract 3 Indexers. Check reward eligibility based on Subgraph feature usage and supported networks. To learn more about curation, read [Curating](/resources/roles/curating/). diff --git a/website/src/pages/zh/archived/arbitrum/arbitrum-faq.mdx b/website/src/pages/zh/archived/arbitrum/arbitrum-faq.mdx index 1394b869f02e..e827f0a40490 100644 --- a/website/src/pages/zh/archived/arbitrum/arbitrum-faq.mdx +++ b/website/src/pages/zh/archived/arbitrum/arbitrum-faq.mdx @@ -25,7 +25,6 @@ Graph的计费系统在Arbitrum上接受GRT,用户将需要Arbitrum的ETH来 因此,要为查询付费,您需要Arbitrum上的GRT。以下是实现这一目标的几种不同方法: - 如果你已经在以太坊上有了GRT,你可以把它连接到Arbitrum。您可以通过Subgraph Studio中提供的GRT桥接选项或使用以下桥接器之一来完成此操作: - - Arbitrum大桥(https://bridge.arbitrum.io/?l2ChainId=42161) - [TransferTo](https://transferto.xyz/swap) diff --git a/website/src/pages/zh/indexing/overview.mdx b/website/src/pages/zh/indexing/overview.mdx index b2d640e79fe2..7809da642bf3 100644 --- a/website/src/pages/zh/indexing/overview.mdx +++ b/website/src/pages/zh/indexing/overview.mdx @@ -680,13 +680,11 @@ graph indexer actions execute approve 请注意,分配管理支持的操作类型有不同的输入要求: - `Allocate` - 将份额分配给特定的子图部署 - - 所需的操作参数: - 部署ID - 数量 - `Unallocate` - 结束分配,腾出份额重新分配到其他地方 - - 所需的操作参数: - 分配ID - 部署ID @@ -695,7 +693,6 @@ graph indexer actions execute approve - force(使用提供的POI的力量,即使它与图形节点提供的不匹配) - `Reallocate` - 自动关闭分配并为相同的子图部署打开新的分配 - - 所需的操作参数: - 分配ID - 部署ID diff --git a/website/src/pages/zh/indexing/tap.mdx b/website/src/pages/zh/indexing/tap.mdx index 8a3aa1a43d1a..aed41cbf6f54 100644 --- a/website/src/pages/zh/indexing/tap.mdx +++ b/website/src/pages/zh/indexing/tap.mdx @@ -38,7 +38,6 @@ TAP允许发送方向接收方进行多次付款,**TAP收据**将这些付款 3. `indexer代理`获取所有最后一次的RAVS,并向区块链发送兑换请求,区块链将更新`recent_at`的值。 4. 在``期间,`索引人代理`监控区块链是否有任何重组来恢复交易。 - - 如果被回退,RAV将重新发送到区块链。如果它没有被回退,它将被标记为最终版本。 ## 区块链地址 @@ -77,17 +76,14 @@ TAP允许发送方向接收方进行多次付款,**TAP收据**将这些付款 ### 步骤 1. **索引人代理** - - 遵循[相同的过程](https://github.com/graphprotocol/indexer/pkgs/container/indexer-agent#graph-protocol-indexer-components)。 - Give the new argument `--tap-subgraph-endpoint` to activate the new GraphTally codepaths and enable redeeming of RAVs. 2. **索引人服务** - - 用[新的索引人服务](https://github.com/graphprotocol/indexer-rs)完全替换当前的配置。建议您使用[容器映像](https://github.com/orgs/graphprotocol/packages?repo_name=indexer-rs)。 - 与旧版本一样,您可以轻松地水平扩展索引人服务。它仍然是无状态的。 3. **TAP代理** - - 运行 _一个_ [TAP代理](https://github.com/graphprotocol/indexer-rs)实例。建议您使用[容器映像](https://github.com/orgs/graphprotocol/packages?repo_name=indexer-rs)。 4. **配置索引人服务和TAP代理** diff --git a/website/src/pages/zh/resources/glossary.mdx b/website/src/pages/zh/resources/glossary.mdx index bb993a1dffa7..46cfa0865ac8 100644 --- a/website/src/pages/zh/resources/glossary.mdx +++ b/website/src/pages/zh/resources/glossary.mdx @@ -15,7 +15,6 @@ title: 术语汇编 - **Indexers**:网络参与者运行索引节点,从区块链索引数据并提供 GraphQL 查询。 - **Indexer Revenue Streams**:索引人在 GRT 中的获得包括两个组成部分: 查询费用回扣和索引奖励。 - 1. **Query Fee Rebates**: 子图消费者为网络上的查询提供服务支付的费用。 2. **Indexing Rewards**: 索引人因为索引子图而获得的奖励。索引奖励是通过每年发行3% 的 GRT 来产生的。 @@ -43,7 +42,6 @@ title: 术语汇编 - **Epoch**: 网络中的时间单位。一个时期目前为6,646个区块或大约1天。 - **Allocation**: 一个索引人可以分配他们的总 GRT 份额(包括委托人的股份) 到已经部署在The Graph去中心化网络的子图。分配可以有不同的状态: - 1. **Active**: 分配在链上创建时被认为是活跃的。这称为开启一个分配,并向网络表明索引人正在为特定子图建立索引并提供查询服务。活跃分配的索引奖励与子图上的信号以及分配的 GRT 的数量成正比。 2. **Closed**:索引人可以通过提交最近有效的索引证明(POI)来获得给定子图的累积索引奖励。这被称为关闭分配。分配必须至少开放一个时期,然后才能关闭。最大分配周期为28个时期。如果索引人在28个时期之后留下一个开放的分配,则称为陈旧分配。当分配处于**Closed**状态时,Fisherman仍然可以发起争议,质疑索引人提供虚假数据。 diff --git a/website/src/pages/zh/resources/roles/delegating/undelegating.mdx b/website/src/pages/zh/resources/roles/delegating/undelegating.mdx index c7bcbb60817e..31606dd6ce82 100644 --- a/website/src/pages/zh/resources/roles/delegating/undelegating.mdx +++ b/website/src/pages/zh/resources/roles/delegating/undelegating.mdx @@ -13,13 +13,11 @@ title: 取消授权 1. 访问[Graph Explorer](https://thegraph.com/explorer)。请确保您使用的是Explorer而**不是** Subgraph Studio。 2. 点击您的个人资料。你可以在页面的右上角找到它。 - - 确保您的钱包已连接。如果它没有连接,您将看到“连接”按钮。 3. 进入个人资料后,单击委托选项卡。在委托选项卡中,您可以查看已委托的索引人列表。 4. 单击要从中提取代币的索引人。 - - 请务必注意特定的索引人,因为您需要再次找到它们才能提取。 5. 通过单击右侧索引人旁边的三个点来选择“Undelegate”选项,请参阅下图: @@ -37,11 +35,9 @@ title: 取消授权 ### 步骤 1. 在Arbiscan上查找您的委托交易。 - - 这是[Arbiscan上的一个交易示例](https://arbiscan.io/tx/0xcf2110eac897099f821064445041031efb32786392bdbe7544a4cb7a6b2e4f9a)。 2. 导航到“交易操作”,您可以在其中找到质押延期合约: - - [这是上述示例的质押延期合约](https://arbiscan.io/address/0x00669A4CF01450B64E8A2A20E9b1FCB71E61eF03)。 3. 然后点击“合约”。![Arbiscan上NFT传输和事件之间的合约选项卡](/img/arbiscan-contract.png)。 @@ -59,7 +55,6 @@ title: 取消授权 9. 如果你不知道你委托了多少代币,你可以在读取自定义选项卡上调用`getDelegation`。你需要粘贴你的地址(委托人地址)和你委托给的索引人的地址,如下图所示: ![这两个地址都需要](/img/get-delegate.png) - - 这将返回三个数字。第一个数字是您可以取消预订的金额。 10. 调用`unstake`后,您可以在大约28个时期(28天)后通过调用 `withdraw`函数进行撤回。 diff --git a/website/src/pages/zh/subgraphs/best-practices/grafting-hotfix.mdx b/website/src/pages/zh/subgraphs/best-practices/grafting-hotfix.mdx index 2fd2d120ee1f..5b0518c1e23f 100644 --- a/website/src/pages/zh/subgraphs/best-practices/grafting-hotfix.mdx +++ b/website/src/pages/zh/subgraphs/best-practices/grafting-hotfix.mdx @@ -14,12 +14,10 @@ sidebarTitle: 嫁接和修补 ## 嫁接修复补丁的好处 1. **快速部署** - - **最小化停机时间**:当子图遇到严重错误并停止索引时,嫁接使您能够立即部署修复程序,而无需等待重新索引。 - **立即恢复**:新的子图从最后一个索引块继续,确保数据服务保持不间断。 2. **数据保存** - - **重用历史数据**:嫁接会从基础子图复制现有数据,这样就不会丢失有价值的历史记录。 - **一致性**:保持数据连续性,这对于依赖一致历史数据的应用程序至关重要。 @@ -30,19 +28,16 @@ sidebarTitle: 嫁接和修补 ## 使用嫁接修复补丁的最佳实践 1. **无嫁接的初始部署** - - **开始清理**:始终部署初始子图而不进行嫁接,以确保其稳定并按预期运行。 - **彻底测试**:验证子图的性能,以尽量减少对未来补丁的需求。 2. **用嫁接实现补丁** - - **识别问题**:当发生严重错误时,确定最后一个成功索引事件的块号。 - **创建新子图**:开发一个包含修补程序的新子图。 - **配置嫁接**:使用嫁接将数据从失败的子图复制到识别的块号。 - **快速部署**:发布嫁接的子图,尽快恢复服务。 3. **发布修补程序操作** - - **监控性能**:确保嫁接的子图正确索引,并且修补程序解决了该问题。 - **无嫁接的重新发布**:一旦稳定,部署新版本的子图,无需嫁接以进行长期维护。 > 注意:不建议无限期地依赖嫁接,因为这会使未来的更新和维护复杂化。 @@ -130,7 +125,6 @@ sidebarTitle: 嫁接和修补 - **block**:应该开始嫁接的块号。 3. **部署步骤** - - **更新代码**:在映射脚本中实现修补程序(例如handleWithdrawal)。 - **调整Manifest**:如上所示,使用嫁接配置更新`subgraph.yaml`。 - **部署子图**: diff --git a/website/src/pages/zh/subgraphs/developing/creating/install-the-cli.mdx b/website/src/pages/zh/subgraphs/developing/creating/install-the-cli.mdx index b8fa541b7453..ce010b7da9c4 100644 --- a/website/src/pages/zh/subgraphs/developing/creating/install-the-cli.mdx +++ b/website/src/pages/zh/subgraphs/developing/creating/install-the-cli.mdx @@ -46,7 +46,6 @@ graph init \ ``` - 该命令试图从Etherscan检索合约ABI。 - - Graph CLI依赖于公共RPC端点。虽然偶尔会出现故障,但重试通常可以解决此问题。如果故障持续存在,请考虑使用本地ABI。 - 如果缺少任何可选参数,它将引导您完成交互式表单。 @@ -87,7 +86,6 @@ Options: `graph add`命令将从Etherscan获取ABI(除非使用`--abi`选项指定了ABI路径),并创建一个新的`dataSource`,类似于`graph-init`指令如何`从合约`创建`data. Source`,从而相应地更新模式和映射。这允许您从代理合约中索引实现合约。 - `--merge-entities`选项标识开发人员希望如何处理`实体`和`事件`名称冲突: - - 如果为`真`:新的`数据源`应该使用现有的`事件处理程序`和`实体`。 - 如果为`假`:应使用`${dataSourceName}{EventName}`创建新的`实体`和`事件`处理程序。 diff --git a/website/src/pages/zh/subgraphs/developing/managing/deleting-a-subgraph.mdx b/website/src/pages/zh/subgraphs/developing/managing/deleting-a-subgraph.mdx index 6c01e7a3e67b..57ce8a95030e 100644 --- a/website/src/pages/zh/subgraphs/developing/managing/deleting-a-subgraph.mdx +++ b/website/src/pages/zh/subgraphs/developing/managing/deleting-a-subgraph.mdx @@ -17,7 +17,6 @@ title: 删除子图 ![Delete-subgraph](/img/Delete-subgraph.png) 4. 视子图的状态而定,您将会收到各种选项提示。 - - 如果子图未发布,请单击“删除”并确认。 - 如果子图已发布,您需要先确认钱包,然后才能从工作室删除子图。 如果子图被发布到多个网络,如测试网和主网,则可能需要额外的步骤。 diff --git a/website/src/pages/zh/subgraphs/explorer.mdx b/website/src/pages/zh/subgraphs/explorer.mdx index e2e8147cd683..9698d4154172 100644 --- a/website/src/pages/zh/subgraphs/explorer.mdx +++ b/website/src/pages/zh/subgraphs/explorer.mdx @@ -26,7 +26,6 @@ Graph Explorer由多个部分组成,您可以在其中与 [Subgraphs](https:// - 在面板测试查询,并能够通过网络细节来做出知情的决定。 - 您还可以在自己的子图或其他人的子图中发出 GRT 信号,以使索引人意识到其重要性和质量。 - - 这很关键,因为子图上的信号会激励它被索引,这意味着它将出现在网络上,最终为查询提供服务。 ![Explorer 图像 2](/img/Subgraph-Details.png) diff --git a/website/src/pages/zh/subgraphs/mcp/claude.mdx b/website/src/pages/zh/subgraphs/mcp/claude.mdx index 8b61438d2ab7..027b272cb942 100644 --- a/website/src/pages/zh/subgraphs/mcp/claude.mdx +++ b/website/src/pages/zh/subgraphs/mcp/claude.mdx @@ -85,7 +85,6 @@ Once you've entered your Gateway API key into your settings, save the file and r 2. **Find the Command Path** After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. - - Navigate to your `subgraph-mcp` directory in terminal - Run `pwd` to get the full path - Combine the output with `/target/release/subgraph-mcp` diff --git a/website/src/pages/zh/subgraphs/quick-start.mdx b/website/src/pages/zh/subgraphs/quick-start.mdx index 01a0c5cbcfc5..e1954fa18ab2 100644 --- a/website/src/pages/zh/subgraphs/quick-start.mdx +++ b/website/src/pages/zh/subgraphs/quick-start.mdx @@ -166,11 +166,9 @@ graph publish #### 将信号添加到您的子图 1. 为了吸引索引人查询您的子图,您应该添加 GRT 策展信号。 - - 此操作可以提高服务质量,减少延迟,提高网络冗余性和子图的可用性。 2. 如果符合索引奖励,索引人将根据信号金额获得GRT奖励。 - - 建议策展至少 3 000GRT 来吸引3个索引人。根据子图功能的使用情况和支持的网络检查奖励资格。 要了解更多关于策展的信息,请访问 [Curating](/resources/roles/curating/)。 diff --git a/website/src/remarkTransformRemoteGitHub.js b/website/src/remarkTransformRemoteGitHub.js deleted file mode 100644 index 2999d9806b55..000000000000 --- a/website/src/remarkTransformRemoteGitHub.js +++ /dev/null @@ -1,67 +0,0 @@ -import path from 'path' - -import { EXIT, visit } from 'unist-util-visit' - -const GITHUB_DATA = { - 'graph-ts': { - user: 'graphprotocol', - repo: 'graph-tooling', - branch: 'main', - docsPath: 'packages/ts/', - basePath: '/subgraphs/developing/creating/graph-ts/', - }, - 'graph-client': { - user: 'graphprotocol', - repo: 'graph-client', - branch: 'main', - docsPath: 'docs/', - basePath: '/subgraphs/querying/graph-client/', - }, -} - -const GO_BACK_REPEATED_REGEX = /(\.\.\/)+/ - -const EXTERNAL_LINK_REGEX = /^(https?:)?\/\// - -export const remarkTransformRemoteGitHub = () => (tree, file) => { - // Rewrite relative links to ensure they work - const filePath = path.relative(process.cwd(), file.history[0]) - const [fileName, directory] = filePath.split('/').reverse() - - const data = GITHUB_DATA[directory] - - if (!data) { - return - } - - const { user, repo, branch, basePath, docsPath } = data - - visit(tree, 'link', (node) => { - if (node.url.startsWith('../')) { - node.url = node.url.replace(GO_BACK_REPEATED_REGEX, `https://github.com/${user}/${repo}/tree/${branch}/`) - } - // Skip external links and same-page anchor links - if (EXTERNAL_LINK_REGEX.test(node.url) || node.url.startsWith('#')) { - return - } - if (node.url.startsWith('/')) { - // Relative to the base path, e.g. (foo)[/bar] - node.url = node.url.replace('/', basePath) - } else { - // Relative to the current path, e.g. (foo)[bar] or (foo)[./bar] or (foo)[../bar] - node.url = path.join(basePath + path.dirname(fileName), node.url) - } - }) - - visit(tree, { type: 'heading', depth: 1 }, (node) => { - // Replace h1 with YAML frontmatter - node.type = 'yaml' - node.value = `title: "${node.children[0].value}" -remotePageUrl: https://github.com/${user}/${repo}/tree/${branch}/${docsPath}${fileName}` - delete node.depth - delete node.children - delete node.position - - return EXIT // stop traversing in case there are other h1 nodes - }) -} diff --git a/website/src/remoteDocs/index.ts b/website/src/remoteDocs/index.ts new file mode 100644 index 000000000000..c220b1b1c152 --- /dev/null +++ b/website/src/remoteDocs/index.ts @@ -0,0 +1,28 @@ +import path from 'node:path' + +export interface RemoteDocsRepo { + user: string + name: string + branch: string + docsPath: string + basePath: string +} + +export const REMOTE_DOCS_REPOS: RemoteDocsRepo[] = [ + { + user: 'graphprotocol', + name: 'graph-tooling', + branch: 'main', + docsPath: 'packages/ts/', + basePath: '/subgraphs/developing/creating/graph-ts/', + }, + { + user: 'graphprotocol', + name: 'graph-client', + branch: 'main', + docsPath: 'docs/', + basePath: '/subgraphs/querying/graph-client/', + }, +] + +export const ENGLISH_PAGES_DIRECTORY = path.join(process.cwd(), 'src/pages/en') diff --git a/website/src/supportedNetworks/NetworksTable.tsx b/website/src/supportedNetworks/NetworksTable.tsx index f7a4ec8627bc..feebf4f6bd20 100644 --- a/website/src/supportedNetworks/NetworksTable.tsx +++ b/website/src/supportedNetworks/NetworksTable.tsx @@ -56,12 +56,11 @@ export function NetworksTable({ networks }: { networks: SupportedNetwork[] }) { return ( <> +

    {t('index.supportedNetworks.infoText')}

    - {t('index.supportedNetworks.infoText')}{' '} {t('index.supportedNetworks.infoLink')} - .

    diff --git a/website/src/supportedNetworks/index.tsx b/website/src/supportedNetworks/index.ts similarity index 100% rename from website/src/supportedNetworks/index.tsx rename to website/src/supportedNetworks/index.ts