From 6b2de597757ce8bb75c840955de9536e147f7ca6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mati=CC=81as?= Date: Tue, 15 Oct 2024 16:45:21 -0300 Subject: [PATCH 1/7] hotfix(website): use builder provided rpcs for registry requests --- .../src/features/Deploy/PublishUtility.tsx | 37 +++++++++---------- packages/website/src/hooks/registry.ts | 10 +++-- .../src/providers/CannonRegistryProvider.tsx | 18 ++++----- 3 files changed, 33 insertions(+), 32 deletions(-) diff --git a/packages/website/src/features/Deploy/PublishUtility.tsx b/packages/website/src/features/Deploy/PublishUtility.tsx index d21fd92d0..69d1961cc 100644 --- a/packages/website/src/features/Deploy/PublishUtility.tsx +++ b/packages/website/src/features/Deploy/PublishUtility.tsx @@ -29,6 +29,7 @@ import { useMutation } from '@tanstack/react-query'; import { CannonStorage, DEFAULT_REGISTRY_ADDRESS, + DEFAULT_REGISTRY_CONFIG, FallbackRegistry, InMemoryRegistry, OnChainRegistry, @@ -81,7 +82,7 @@ export default function PublishUtility(props: { viem.isAddressEqual(publisher, wc.data?.account.address) ); - const { transports, getExplorerUrl } = useCannonChains(); + const { getChainById, transports, getExplorerUrl } = useCannonChains(); const prepareAndPublishPackage = async (publishChainId: number) => { if (!wc.data) { @@ -90,25 +91,23 @@ export default function PublishUtility(props: { const [walletAddress] = await wc.data.getAddresses(); - const targetRegistry = new FallbackRegistry( - [ - new OnChainRegistry({ - signer: { address: walletAddress, wallet: wc.data as any }, - address: DEFAULT_REGISTRY_ADDRESS, - provider: viem.createPublicClient({ - chain: optimism, - transport: transports[optimism.id] || viem.http(), - }) as any, // TODO: fix type - }), - new OnChainRegistry({ - signer: { address: walletAddress, wallet: wc.data as any }, - address: DEFAULT_REGISTRY_ADDRESS, - provider: viem.createPublicClient({ - chain: mainnet, - transport: transports[mainnet.id] || viem.http(), - }) as any, // TODO: fix type + const onChainRegistries = DEFAULT_REGISTRY_CONFIG.map((config) => { + const rpcUrl = config.rpcUrl.find( + (url) => url.startsWith('https://') || url.startsWith('wss://') + ); + + return new OnChainRegistry({ + signer: { address: walletAddress, wallet: wc.data as any }, + address: config.address, + provider: viem.createPublicClient({ + chain: getChainById(config.chainId), + transport: viem.http(rpcUrl), }), - ], + }); + }); + + const targetRegistry = new FallbackRegistry( + onChainRegistries, publishChainId === 10 ? 0 : 1 ); diff --git a/packages/website/src/hooks/registry.ts b/packages/website/src/hooks/registry.ts index 0f66407d8..289910e20 100644 --- a/packages/website/src/hooks/registry.ts +++ b/packages/website/src/hooks/registry.ts @@ -1,5 +1,5 @@ import { useCannonChains } from '@/providers/CannonProvidersProvider'; -import { DEFAULT_REGISTRY_ADDRESS, DEFAULT_REGISTRY_CONFIG, OnChainRegistry } from '@usecannon/builder'; +import { DEFAULT_REGISTRY_CONFIG, OnChainRegistry } from '@usecannon/builder'; import { useEffect, useState } from 'react'; import * as viem from 'viem'; @@ -17,12 +17,14 @@ export function useCannonPackagePublishers(packageName?: string) { if (!packageName) return setPublishers([]); const onChainRegistries = DEFAULT_REGISTRY_CONFIG.map((config) => { + const rpcUrl = config.rpcUrl.find((url) => url.startsWith('https://') || url.startsWith('wss://')); + return new OnChainRegistry({ - address: DEFAULT_REGISTRY_ADDRESS, + address: config.address, provider: viem.createPublicClient({ chain: getChainById(config.chainId), - transport: viem.http(), - }) as any, // TODO: fix type + transport: viem.http(rpcUrl), + }), }); }); diff --git a/packages/website/src/providers/CannonRegistryProvider.tsx b/packages/website/src/providers/CannonRegistryProvider.tsx index fa9e42c83..4d69cd615 100644 --- a/packages/website/src/providers/CannonRegistryProvider.tsx +++ b/packages/website/src/providers/CannonRegistryProvider.tsx @@ -3,7 +3,6 @@ import { inMemoryRegistry } from '@/helpers/cannon'; import { useCannonChains } from '@/providers/CannonProvidersProvider'; import { - DEFAULT_REGISTRY_ADDRESS, DEFAULT_REGISTRY_CONFIG, FallbackRegistry, OnChainRegistry, @@ -20,17 +19,18 @@ type Props = { children: React.ReactNode; }; export const CannonRegistryProvider: React.FC = ({ children }) => { - const { getChainById, transports } = useCannonChains(); - const onChainRegistries = DEFAULT_REGISTRY_CONFIG.map( - (registry) => registry.chainId - ).map((chainId: number) => { - const chain = getChainById(chainId); + const { getChainById } = useCannonChains(); + + const onChainRegistries = DEFAULT_REGISTRY_CONFIG.map((config) => { + const rpcUrl = config.rpcUrl.find( + (url) => url.startsWith('https://') || url.startsWith('wss://') + ); return new OnChainRegistry({ - address: DEFAULT_REGISTRY_ADDRESS, + address: config.address, provider: createPublicClient({ - chain, - transport: transports[chainId] || http(), + chain: getChainById(config.chainId), + transport: http(rpcUrl), }), }); }); From c9e5ad438257499b832a74be269b578745b89aa7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mati=CC=81as?= Date: Tue, 15 Oct 2024 16:46:51 -0300 Subject: [PATCH 2/7] hotfix(website): add solc as a website dependency --- packages/website/package.json | 1 + pnpm-lock.yaml | 37 +++++++++++++++++++---------------- 2 files changed, 21 insertions(+), 17 deletions(-) diff --git a/packages/website/package.json b/packages/website/package.json index 60ceb2334..6764dbe8c 100644 --- a/packages/website/package.json +++ b/packages/website/package.json @@ -87,6 +87,7 @@ "react-syntax-highlighter": "^15.5.0", "remark-gfm": "^3.0.1", "simple-url": "^1.1.8", + "solc": "^0.8.17", "styled-components": "^6.0.7", "viem": "^2.21.15", "wagmi": "^2.5.13", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b63973fef..ed605e7e6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -234,7 +234,7 @@ importers: version: 1.7.5(debug@4.3.6) axios-retry: specifier: ^4.4.2 - version: 4.5.0(axios@1.7.5) + version: 4.5.0(axios@1.7.5(debug@4.3.6)) buffer: specifier: ^6.0.3 version: 6.0.3 @@ -668,7 +668,7 @@ importers: version: 2.4.4(bufferutil@4.0.8)(encoding@0.1.13)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.23.8) '@safe-global/protocol-kit': specifier: ^1.2.0 - version: 1.3.0(bufferutil@4.0.8)(encoding@0.1.13)(ethers@5.7.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10) + version: 1.3.0(bufferutil@4.0.8)(encoding@0.1.13)(ethers@6.13.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10) '@safe-global/safe-apps-sdk': specifier: ^9.1.0 version: 9.1.0(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.23.8) @@ -746,7 +746,7 @@ importers: version: 14.2.6(eslint@8.43.0)(typescript@5.5.4) ethers: specifier: '>=5.6.0' - version: 5.7.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) + version: 6.13.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) fast-deep-equal: specifier: ^3.1.3 version: 3.1.3 @@ -816,6 +816,9 @@ importers: simple-url: specifier: ^1.1.8 version: 1.1.8 + solc: + specifier: ^0.8.17 + version: 0.8.26(debug@4.3.6) styled-components: specifier: ^6.0.7 version: 6.1.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -15763,7 +15766,7 @@ snapshots: '@cucumber/ci-environment': 10.0.1 '@cucumber/cucumber-expressions': 17.1.0 '@cucumber/gherkin': 28.0.0 - '@cucumber/gherkin-streams': 5.0.1(@cucumber/gherkin@28.0.0)(@cucumber/message-streams@4.0.1(@cucumber/messages@25.0.1))(@cucumber/messages@24.1.0) + '@cucumber/gherkin-streams': 5.0.1(@cucumber/gherkin@28.0.0)(@cucumber/message-streams@4.0.1(@cucumber/messages@24.1.0))(@cucumber/messages@24.1.0) '@cucumber/gherkin-utils': 9.0.0 '@cucumber/html-formatter': 21.6.0(@cucumber/messages@24.1.0) '@cucumber/message-streams': 4.0.1(@cucumber/messages@24.1.0) @@ -15803,7 +15806,7 @@ snapshots: yaml: 2.5.0 yup: 1.2.0 - '@cucumber/gherkin-streams@5.0.1(@cucumber/gherkin@28.0.0)(@cucumber/message-streams@4.0.1(@cucumber/messages@25.0.1))(@cucumber/messages@24.1.0)': + '@cucumber/gherkin-streams@5.0.1(@cucumber/gherkin@28.0.0)(@cucumber/message-streams@4.0.1(@cucumber/messages@24.1.0))(@cucumber/messages@24.1.0)': dependencies: '@cucumber/gherkin': 28.0.0 '@cucumber/message-streams': 4.0.1(@cucumber/messages@24.1.0) @@ -18524,7 +18527,7 @@ snapshots: - utf-8-validate - zod - '@safe-global/protocol-kit@1.3.0(bufferutil@4.0.8)(encoding@0.1.13)(ethers@5.7.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10)': + '@safe-global/protocol-kit@1.3.0(bufferutil@4.0.8)(encoding@0.1.13)(ethers@6.13.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10)': dependencies: '@ethersproject/address': 5.7.0 '@ethersproject/bignumber': 5.7.0 @@ -18535,7 +18538,7 @@ snapshots: web3: 1.10.4(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) web3-core: 1.10.4(encoding@0.1.13) web3-utils: 1.10.4 - zksync-web3: 0.14.4(ethers@5.7.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)) + zksync-web3: 0.14.4(ethers@6.13.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)) transitivePeerDependencies: - bufferutil - encoding @@ -19796,7 +19799,7 @@ snapshots: dependencies: '@synthetixio/router': 3.4.0(hardhat@2.22.9(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@20.3.2)(typescript@5.5.4))(typescript@5.5.4)(utf-8-validate@5.0.10))(solc@0.8.26) axios: 1.7.5(debug@4.3.6) - axios-retry: 4.5.0(axios@1.7.5) + axios-retry: 4.5.0(axios@1.7.5(debug@4.3.6)) buffer: 6.0.3 chalk: 4.1.2 debug: 4.3.6(supports-color@8.1.1) @@ -20724,7 +20727,7 @@ snapshots: '@babel/runtime': 7.25.4 is-retry-allowed: 2.2.0 - axios-retry@4.5.0(axios@1.7.5): + axios-retry@4.5.0(axios@1.7.5(debug@4.3.6)): dependencies: axios: 1.7.5(debug@4.3.6) is-retry-allowed: 2.2.0 @@ -22766,7 +22769,7 @@ snapshots: '@typescript-eslint/parser': 5.62.0(eslint@8.43.0)(typescript@5.5.4) eslint: 8.43.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@5.62.0(eslint@8.43.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(@typescript-eslint/parser@5.62.0(eslint@8.43.0)(typescript@5.5.4))(eslint@8.43.0))(eslint@8.43.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@5.62.0(eslint@8.43.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.43.0) eslint-plugin-import: 2.29.1(@typescript-eslint/parser@5.62.0(eslint@8.43.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1)(eslint@8.43.0) eslint-plugin-jsx-a11y: 6.9.0(eslint@8.43.0) eslint-plugin-react: 7.35.0(eslint@8.43.0) @@ -22789,12 +22792,12 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@5.62.0(eslint@8.43.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(@typescript-eslint/parser@5.62.0(eslint@8.43.0)(typescript@5.5.4))(eslint@8.43.0))(eslint@8.43.0): + eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@5.62.0(eslint@8.43.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.43.0): dependencies: debug: 4.3.6(supports-color@8.1.1) enhanced-resolve: 5.17.1 eslint: 8.43.0 - eslint-module-utils: 2.8.1(@typescript-eslint/parser@5.62.0(eslint@8.43.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@5.62.0(eslint@8.43.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(@typescript-eslint/parser@5.62.0(eslint@8.43.0)(typescript@5.5.4))(eslint@8.43.0))(eslint@8.43.0))(eslint@8.43.0) + eslint-module-utils: 2.8.1(@typescript-eslint/parser@5.62.0(eslint@8.43.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@5.62.0(eslint@8.43.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.43.0))(eslint@8.43.0) eslint-plugin-import: 2.29.1(@typescript-eslint/parser@5.62.0(eslint@8.43.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1)(eslint@8.43.0) fast-glob: 3.3.2 get-tsconfig: 4.7.6 @@ -22806,14 +22809,14 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-module-utils@2.8.1(@typescript-eslint/parser@5.62.0(eslint@8.43.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@5.62.0(eslint@8.43.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(@typescript-eslint/parser@5.62.0(eslint@8.43.0)(typescript@5.5.4))(eslint@8.43.0))(eslint@8.43.0))(eslint@8.43.0): + eslint-module-utils@2.8.1(@typescript-eslint/parser@5.62.0(eslint@8.43.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@5.62.0(eslint@8.43.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.43.0))(eslint@8.43.0): dependencies: debug: 3.2.7(supports-color@8.1.1) optionalDependencies: '@typescript-eslint/parser': 5.62.0(eslint@8.43.0)(typescript@5.5.4) eslint: 8.43.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@5.62.0(eslint@8.43.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(@typescript-eslint/parser@5.62.0(eslint@8.43.0)(typescript@5.5.4))(eslint@8.43.0))(eslint@8.43.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@5.62.0(eslint@8.43.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.43.0) transitivePeerDependencies: - supports-color @@ -22832,7 +22835,7 @@ snapshots: doctrine: 2.1.0 eslint: 8.43.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.1(@typescript-eslint/parser@5.62.0(eslint@8.43.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@5.62.0(eslint@8.43.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(@typescript-eslint/parser@5.62.0(eslint@8.43.0)(typescript@5.5.4))(eslint@8.43.0))(eslint@8.43.0))(eslint@8.43.0) + eslint-module-utils: 2.8.1(@typescript-eslint/parser@5.62.0(eslint@8.43.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@5.62.0(eslint@8.43.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.43.0))(eslint@8.43.0) hasown: 2.0.2 is-core-module: 2.15.1 is-glob: 4.0.3 @@ -31630,9 +31633,9 @@ snapshots: toposort: 2.0.2 type-fest: 2.19.0 - zksync-web3@0.14.4(ethers@5.7.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)): + zksync-web3@0.14.4(ethers@6.13.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)): dependencies: - ethers: 5.7.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) + ethers: 6.13.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) znv@0.4.0(zod@3.23.8): dependencies: From c9cab98998994a0a29824a17d4ff0184929922c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mati=CC=81as?= Date: Tue, 15 Oct 2024 16:50:53 -0300 Subject: [PATCH 3/7] allow to use custom rpcs setted on settings --- packages/website/src/features/Deploy/PublishUtility.tsx | 2 +- packages/website/src/hooks/registry.ts | 4 ++-- packages/website/src/providers/CannonRegistryProvider.tsx | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/website/src/features/Deploy/PublishUtility.tsx b/packages/website/src/features/Deploy/PublishUtility.tsx index 69d1961cc..af6ecab1b 100644 --- a/packages/website/src/features/Deploy/PublishUtility.tsx +++ b/packages/website/src/features/Deploy/PublishUtility.tsx @@ -101,7 +101,7 @@ export default function PublishUtility(props: { address: config.address, provider: viem.createPublicClient({ chain: getChainById(config.chainId), - transport: viem.http(rpcUrl), + transport: transports[config.chainId] || viem.http(rpcUrl), }), }); }); diff --git a/packages/website/src/hooks/registry.ts b/packages/website/src/hooks/registry.ts index 289910e20..4d992d16c 100644 --- a/packages/website/src/hooks/registry.ts +++ b/packages/website/src/hooks/registry.ts @@ -11,7 +11,7 @@ type Publishers = { export function useCannonPackagePublishers(packageName?: string) { const [publishers, setPublishers] = useState([]); - const { getChainById } = useCannonChains(); + const { getChainById, transports } = useCannonChains(); useEffect(() => { if (!packageName) return setPublishers([]); @@ -23,7 +23,7 @@ export function useCannonPackagePublishers(packageName?: string) { address: config.address, provider: viem.createPublicClient({ chain: getChainById(config.chainId), - transport: viem.http(rpcUrl), + transport: transports[config.chainId] || viem.http(rpcUrl), }), }); }); diff --git a/packages/website/src/providers/CannonRegistryProvider.tsx b/packages/website/src/providers/CannonRegistryProvider.tsx index 4d69cd615..f8fc4bbc1 100644 --- a/packages/website/src/providers/CannonRegistryProvider.tsx +++ b/packages/website/src/providers/CannonRegistryProvider.tsx @@ -19,7 +19,7 @@ type Props = { children: React.ReactNode; }; export const CannonRegistryProvider: React.FC = ({ children }) => { - const { getChainById } = useCannonChains(); + const { getChainById, transports } = useCannonChains(); const onChainRegistries = DEFAULT_REGISTRY_CONFIG.map((config) => { const rpcUrl = config.rpcUrl.find( @@ -30,7 +30,7 @@ export const CannonRegistryProvider: React.FC = ({ children }) => { address: config.address, provider: createPublicClient({ chain: getChainById(config.chainId), - transport: http(rpcUrl), + transport: transports[config.chainId] || http(rpcUrl), }), }); }); From 9ffd6632d583b18605d6ee8ae1d7ea8286706443 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mati=CC=81as?= Date: Tue, 15 Oct 2024 16:54:19 -0300 Subject: [PATCH 4/7] fix lint error --- packages/website/src/features/Deploy/PublishUtility.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/website/src/features/Deploy/PublishUtility.tsx b/packages/website/src/features/Deploy/PublishUtility.tsx index af6ecab1b..0a1c8bc2b 100644 --- a/packages/website/src/features/Deploy/PublishUtility.tsx +++ b/packages/website/src/features/Deploy/PublishUtility.tsx @@ -28,7 +28,6 @@ import { import { useMutation } from '@tanstack/react-query'; import { CannonStorage, - DEFAULT_REGISTRY_ADDRESS, DEFAULT_REGISTRY_CONFIG, FallbackRegistry, InMemoryRegistry, From 39f62d0e1bec7df5b7f7c08da73abd02782c9f72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mati=CC=81as?= Date: Tue, 15 Oct 2024 16:57:16 -0300 Subject: [PATCH 5/7] fix changesets validation --- .github/workflows/commitlint-pr.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/commitlint-pr.yml b/.github/workflows/commitlint-pr.yml index ba42e42bc..e18a3d9c0 100644 --- a/.github/workflows/commitlint-pr.yml +++ b/.github/workflows/commitlint-pr.yml @@ -24,3 +24,10 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: validateSingleCommit: false + types: | + hotfix + feat + fix + chore + docs + test From d3f4c6dd8b45d8c7942143f5610a15dc27efc789 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mati=CC=81as?= Date: Tue, 15 Oct 2024 17:34:45 -0300 Subject: [PATCH 6/7] fix to not use default transport for the registry --- .../src/features/Deploy/PublishUtility.tsx | 4 +- packages/website/src/hooks/registry.ts | 4 +- .../src/providers/CannonProvidersProvider.tsx | 62 +++++++++++-------- .../src/providers/CannonRegistryProvider.tsx | 4 +- 4 files changed, 43 insertions(+), 31 deletions(-) diff --git a/packages/website/src/features/Deploy/PublishUtility.tsx b/packages/website/src/features/Deploy/PublishUtility.tsx index 0a1c8bc2b..c3408fc52 100644 --- a/packages/website/src/features/Deploy/PublishUtility.tsx +++ b/packages/website/src/features/Deploy/PublishUtility.tsx @@ -81,7 +81,7 @@ export default function PublishUtility(props: { viem.isAddressEqual(publisher, wc.data?.account.address) ); - const { getChainById, transports, getExplorerUrl } = useCannonChains(); + const { getChainById, customTransports, getExplorerUrl } = useCannonChains(); const prepareAndPublishPackage = async (publishChainId: number) => { if (!wc.data) { @@ -100,7 +100,7 @@ export default function PublishUtility(props: { address: config.address, provider: viem.createPublicClient({ chain: getChainById(config.chainId), - transport: transports[config.chainId] || viem.http(rpcUrl), + transport: customTransports[config.chainId] || viem.http(rpcUrl), }), }); }); diff --git a/packages/website/src/hooks/registry.ts b/packages/website/src/hooks/registry.ts index 4d992d16c..e7e641c1c 100644 --- a/packages/website/src/hooks/registry.ts +++ b/packages/website/src/hooks/registry.ts @@ -11,7 +11,7 @@ type Publishers = { export function useCannonPackagePublishers(packageName?: string) { const [publishers, setPublishers] = useState([]); - const { getChainById, transports } = useCannonChains(); + const { getChainById, customTransports } = useCannonChains(); useEffect(() => { if (!packageName) return setPublishers([]); @@ -23,7 +23,7 @@ export function useCannonPackagePublishers(packageName?: string) { address: config.address, provider: viem.createPublicClient({ chain: getChainById(config.chainId), - transport: transports[config.chainId] || viem.http(rpcUrl), + transport: customTransports[config.chainId] || viem.http(rpcUrl), }), }); }); diff --git a/packages/website/src/providers/CannonProvidersProvider.tsx b/packages/website/src/providers/CannonProvidersProvider.tsx index 4d1955405..addfd3eaa 100644 --- a/packages/website/src/providers/CannonProvidersProvider.tsx +++ b/packages/website/src/providers/CannonProvidersProvider.tsx @@ -8,14 +8,7 @@ import React, { useContext, useMemo, } from 'react'; -import { - Chain, - Hash, - http, - HttpTransport, - isAddress, - createPublicClient, -} from 'viem'; +import * as viem from 'viem'; // eslint-disable-next-line no-restricted-imports import * as chains from 'viem/chains'; import sortBy from 'lodash/sortBy'; @@ -27,11 +20,12 @@ import { useQuery } from '@tanstack/react-query'; type CustomProviders = | { - chains: Chain[]; + chains: viem.Chain[]; chainMetadata: Record; - transports: Record; - getChainById: (chainId: number) => Chain | undefined; - getExplorerUrl: (chainId: number, hash: Hash) => string; + transports: Record; + customTransports: Record; + getChainById: (chainId: number) => viem.Chain | undefined; + getExplorerUrl: (chainId: number, hash: viem.Hash) => string; } | undefined; const ProvidersContext = createContext(undefined); @@ -40,7 +34,7 @@ const cannonNetwork = { ...chains.localhost, id: 13370, name: 'Cannon', -} as Chain; +} as viem.Chain; const chainMetadata = { [chains.arbitrum.id]: { @@ -93,11 +87,11 @@ const chainMetadata = { export const supportedChains = [cannonNetwork, ...Object.values(chains)]; export const defaultTransports = supportedChains.reduce((transports, chain) => { - transports[chain.id] = http(); + transports[chain.id] = viem.http(); return transports; -}, {} as Record); +}, {} as Record); -type RpcUrlAndTransport = { rpcUrl: string; transport: HttpTransport }; +type RpcUrlAndTransport = { rpcUrl: string; transport: viem.HttpTransport }; async function _getProvidersChainId({ queryKey }: { queryKey: string[] }) { const [, ...providerUrls] = queryKey; @@ -107,8 +101,8 @@ async function _getProvidersChainId({ queryKey }: { queryKey: string[] }) { } const allPromises = providerUrls.map(async (rpcUrl) => { - const client = createPublicClient({ - transport: http(rpcUrl), + const client = viem.createPublicClient({ + transport: viem.http(rpcUrl), }); const chainId = await client.getChainId(); return { @@ -122,7 +116,7 @@ async function _getProvidersChainId({ queryKey }: { queryKey: string[] }) { if (r.status === 'fulfilled') { transports[+r.value.chainId] = { rpcUrl: r.value.rpcUrl, - transport: http(r.value.rpcUrl), + transport: viem.http(r.value.rpcUrl), }; } @@ -131,7 +125,7 @@ async function _getProvidersChainId({ queryKey }: { queryKey: string[] }) { } function _getAllChains(verifiedProviders?: Record) { - const customChains: Chain[] = cloneDeep(supportedChains); + const customChains: viem.Chain[] = cloneDeep(supportedChains); if (!verifiedProviders || isEmpty(verifiedProviders)) { return customChains; @@ -177,12 +171,28 @@ function _getAllTransports( return customTransports; } -function _getChainById(allChains: Chain[], chainId: number) { +function _getCustomTransports( + verifiedProviders?: Record +) { + const customTransports: { [chainId: number]: viem.HttpTransport } = {}; + + for (const [chainId, provider] of Object.entries(verifiedProviders || {})) { + customTransports[+chainId] = provider.transport; + } + + return customTransports; +} + +function _getChainById(allChains: viem.Chain[], chainId: number) { const chain = allChains.find((c) => c.id === +chainId); return chain; } -const _getExplorerUrl = (allChains: Chain[], chainId: number, hash: Hash) => { +const _getExplorerUrl = ( + allChains: viem.Chain[], + chainId: number, + hash: viem.Hash +) => { const chain = _getChainById(allChains, +chainId); if (!chain) return externalLinks.ETHERSCAN; @@ -191,7 +201,7 @@ const _getExplorerUrl = (allChains: Chain[], chainId: number, hash: Hash) => { const url = explorer?.url || externalLinks.ETHERSCAN; - const type = isAddress(hash) ? 'address' : 'tx'; + const type = viem.isAddress(hash) ? 'address' : 'tx'; return `${url}/${type}/${hash}`; }; @@ -208,10 +218,11 @@ export const CannonProvidersProvider: React.FC = ({ const chainsUrls = Object.values(verifiedProviders || {}).map( (v) => v.rpcUrl ); - const [_allChains, _allTransports] = useMemo( + const [_allChains, _allTransports, _customTransports] = useMemo( () => [ _getAllChains(verifiedProviders), _getAllTransports(verifiedProviders), + _getCustomTransports(verifiedProviders), ], [JSON.stringify(sortBy(chainsUrls))] ); @@ -222,8 +233,9 @@ export const CannonProvidersProvider: React.FC = ({ chains: _allChains, chainMetadata, transports: _allTransports, + customTransports: _customTransports, getChainById: (chainId: number) => _getChainById(_allChains, chainId), - getExplorerUrl: (chainId: number, hash: Hash) => + getExplorerUrl: (chainId: number, hash: viem.Hash) => _getExplorerUrl(_allChains, chainId, hash), }} > diff --git a/packages/website/src/providers/CannonRegistryProvider.tsx b/packages/website/src/providers/CannonRegistryProvider.tsx index f8fc4bbc1..8630756a2 100644 --- a/packages/website/src/providers/CannonRegistryProvider.tsx +++ b/packages/website/src/providers/CannonRegistryProvider.tsx @@ -19,7 +19,7 @@ type Props = { children: React.ReactNode; }; export const CannonRegistryProvider: React.FC = ({ children }) => { - const { getChainById, transports } = useCannonChains(); + const { getChainById, customTransports } = useCannonChains(); const onChainRegistries = DEFAULT_REGISTRY_CONFIG.map((config) => { const rpcUrl = config.rpcUrl.find( @@ -30,7 +30,7 @@ export const CannonRegistryProvider: React.FC = ({ children }) => { address: config.address, provider: createPublicClient({ chain: getChainById(config.chainId), - transport: transports[config.chainId] || http(rpcUrl), + transport: customTransports[config.chainId] || http(rpcUrl), }), }); }); From 04b4c9311244680bbaae39af14a938b0f7270a4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mati=CC=81as?= Date: Tue, 15 Oct 2024 18:24:04 -0300 Subject: [PATCH 7/7] remove solc --- packages/website/package.json | 1 - pnpm-lock.yaml | 98 +++++++++++++++++------------------ 2 files changed, 47 insertions(+), 52 deletions(-) diff --git a/packages/website/package.json b/packages/website/package.json index 6764dbe8c..60ceb2334 100644 --- a/packages/website/package.json +++ b/packages/website/package.json @@ -87,7 +87,6 @@ "react-syntax-highlighter": "^15.5.0", "remark-gfm": "^3.0.1", "simple-url": "^1.1.8", - "solc": "^0.8.17", "styled-components": "^6.0.7", "viem": "^2.21.15", "wagmi": "^2.5.13", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ed605e7e6..7e28ba2ea 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -626,7 +626,7 @@ importers: version: 2.1.1(@chakra-ui/system@2.6.2(@emotion/react@11.13.3(@types/react@18.2.37)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.2.37)(react@18.3.1))(@types/react@18.2.37)(react@18.3.1))(react@18.3.1))(react@18.3.1) '@chakra-ui/next-js': specifier: ^2.1.4 - version: 2.2.0(@chakra-ui/react@2.8.2(@emotion/react@11.13.3(@types/react@18.2.37)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.2.37)(react@18.3.1))(@types/react@18.2.37)(react@18.3.1))(@types/react@18.2.37)(framer-motion@10.18.0(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))(@emotion/react@11.13.3(@types/react@18.2.37)(react@18.3.1))(next@14.2.6(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.8))(react@18.3.1) + version: 2.2.0(@chakra-ui/react@2.8.2(@emotion/react@11.13.3(@types/react@18.2.37)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.2.37)(react@18.3.1))(@types/react@18.2.37)(react@18.3.1))(@types/react@18.2.37)(framer-motion@10.18.0(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))(@emotion/react@11.13.3(@types/react@18.2.37)(react@18.3.1))(next@14.2.6(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.8))(react@18.3.1) '@chakra-ui/react': specifier: ^2.8.2 version: 2.8.2(@emotion/react@11.13.3(@types/react@18.2.37)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.2.37)(react@18.3.1))(@types/react@18.2.37)(react@18.3.1))(@types/react@18.2.37)(framer-motion@10.18.0(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) @@ -659,7 +659,7 @@ importers: version: 14.2.6(bufferutil@4.0.8)(utf-8-validate@5.0.10) '@next/third-parties': specifier: ^14.2.3 - version: 14.2.6(next@14.2.6(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.8))(react@18.3.1) + version: 14.2.6(next@14.2.6(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.8))(react@18.3.1) '@rainbow-me/rainbowkit': specifier: ^2.1.2 version: 2.1.5(@tanstack/react-query@5.52.1(react@18.3.1))(@types/react@18.2.37)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(viem@2.21.15(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.23.8))(wagmi@2.12.7(@tanstack/query-core@5.52.0)(@tanstack/react-query@5.52.1(react@18.3.1))(@types/react@18.2.37)(bufferutil@4.0.8)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.2(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.2.37)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(typescript@5.5.4)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@3.29.4)(typescript@5.5.4)(utf-8-validate@5.0.10)(viem@2.21.15(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8)) @@ -674,7 +674,7 @@ importers: version: 9.1.0(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.23.8) '@sentry/nextjs': specifier: ^8.20.0 - version: 8.26.0(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.25.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.52.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.25.1(@opentelemetry/api@1.9.0))(encoding@0.1.13)(next@14.2.6(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.8))(react@18.3.1)(webpack@5.94.0(esbuild@0.23.1)) + version: 8.26.0(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.25.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.52.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.25.1(@opentelemetry/api@1.9.0))(encoding@0.1.13)(next@14.2.6(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.8))(react@18.3.1)(webpack@5.94.0(esbuild@0.23.1)) '@synthetixio/router': specifier: ^3.4.0 version: 3.4.0(hardhat@2.22.9(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@20.3.2)(typescript@5.5.4))(typescript@5.5.4)(utf-8-validate@5.0.10))(solc@0.8.26) @@ -704,7 +704,7 @@ importers: version: link:../cli '@vercel/analytics': specifier: ^1.1.1 - version: 1.3.1(next@14.2.6(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.8))(react@18.3.1) + version: 1.3.1(next@14.2.6(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.8))(react@18.3.1) '@wagmi/core': specifier: ^2.5.13 version: 2.13.4(@tanstack/query-core@5.52.0)(@types/react@18.2.37)(react@18.3.1)(typescript@5.5.4)(viem@2.21.15(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.23.8)) @@ -770,13 +770,13 @@ importers: version: 4.17.21 next: specifier: ^14.2.1 - version: 14.2.6(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.8) + version: 14.2.6(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.8) next-seo: specifier: ^6.5.0 - version: 6.5.0(next@14.2.6(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.8))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 6.5.0(next@14.2.6(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.8))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) nextjs-toploader: specifier: ^1.6.12 - version: 1.6.12(next@14.2.6(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.8))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.6.12(next@14.2.6(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.8))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) pako: specifier: ^2.1.0 version: 2.1.0 @@ -816,9 +816,6 @@ importers: simple-url: specifier: ^1.1.8 version: 1.1.8 - solc: - specifier: ^0.8.17 - version: 0.8.26(debug@4.3.6) styled-components: specifier: ^6.0.7 version: 6.1.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -15103,12 +15100,12 @@ snapshots: transitivePeerDependencies: - '@types/react' - '@chakra-ui/next-js@2.2.0(@chakra-ui/react@2.8.2(@emotion/react@11.13.3(@types/react@18.2.37)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.2.37)(react@18.3.1))(@types/react@18.2.37)(react@18.3.1))(@types/react@18.2.37)(framer-motion@10.18.0(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))(@emotion/react@11.13.3(@types/react@18.2.37)(react@18.3.1))(next@14.2.6(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.8))(react@18.3.1)': + '@chakra-ui/next-js@2.2.0(@chakra-ui/react@2.8.2(@emotion/react@11.13.3(@types/react@18.2.37)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.2.37)(react@18.3.1))(@types/react@18.2.37)(react@18.3.1))(@types/react@18.2.37)(framer-motion@10.18.0(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))(@emotion/react@11.13.3(@types/react@18.2.37)(react@18.3.1))(next@14.2.6(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.8))(react@18.3.1)': dependencies: '@chakra-ui/react': 2.8.2(@emotion/react@11.13.3(@types/react@18.2.37)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.2.37)(react@18.3.1))(@types/react@18.2.37)(react@18.3.1))(@types/react@18.2.37)(framer-motion@10.18.0(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) '@emotion/cache': 11.13.1 '@emotion/react': 11.13.3(@types/react@18.2.37)(react@18.3.1) - next: 14.2.6(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.8) + next: 14.2.6(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.8) react: 18.3.1 '@chakra-ui/number-input@2.1.2(@chakra-ui/system@2.6.2(@emotion/react@11.13.3(@types/react@18.2.37)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.2.37)(react@18.3.1))(@types/react@18.2.37)(react@18.3.1))(react@18.3.1))(react@18.3.1)': @@ -15766,7 +15763,7 @@ snapshots: '@cucumber/ci-environment': 10.0.1 '@cucumber/cucumber-expressions': 17.1.0 '@cucumber/gherkin': 28.0.0 - '@cucumber/gherkin-streams': 5.0.1(@cucumber/gherkin@28.0.0)(@cucumber/message-streams@4.0.1(@cucumber/messages@24.1.0))(@cucumber/messages@24.1.0) + '@cucumber/gherkin-streams': 5.0.1(@cucumber/gherkin@28.0.0)(@cucumber/message-streams@4.0.1(@cucumber/messages@25.0.1))(@cucumber/messages@24.1.0) '@cucumber/gherkin-utils': 9.0.0 '@cucumber/html-formatter': 21.6.0(@cucumber/messages@24.1.0) '@cucumber/message-streams': 4.0.1(@cucumber/messages@24.1.0) @@ -15806,7 +15803,7 @@ snapshots: yaml: 2.5.0 yup: 1.2.0 - '@cucumber/gherkin-streams@5.0.1(@cucumber/gherkin@28.0.0)(@cucumber/message-streams@4.0.1(@cucumber/messages@24.1.0))(@cucumber/messages@24.1.0)': + '@cucumber/gherkin-streams@5.0.1(@cucumber/gherkin@28.0.0)(@cucumber/message-streams@4.0.1(@cucumber/messages@25.0.1))(@cucumber/messages@24.1.0)': dependencies: '@cucumber/gherkin': 28.0.0 '@cucumber/message-streams': 4.0.1(@cucumber/messages@24.1.0) @@ -16640,7 +16637,7 @@ snapshots: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.5.0 + '@types/node': 20.3.2 jest-mock: 29.7.0 '@jest/expect-utils@29.7.0': @@ -16658,7 +16655,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 22.5.0 + '@types/node': 20.3.2 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -16749,7 +16746,7 @@ snapshots: dependencies: '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 22.5.0 + '@types/node': 20.3.2 '@types/yargs': 15.0.19 chalk: 4.1.2 @@ -16758,7 +16755,7 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 22.5.0 + '@types/node': 20.3.2 '@types/yargs': 17.0.33 chalk: 4.1.2 @@ -17228,9 +17225,9 @@ snapshots: '@next/swc-win32-x64-msvc@14.2.6': optional: true - '@next/third-parties@14.2.6(next@14.2.6(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.8))(react@18.3.1)': + '@next/third-parties@14.2.6(next@14.2.6(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.8))(react@18.3.1)': dependencies: - next: 14.2.6(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.8) + next: 14.2.6(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.8) react: 18.3.1 third-party-capital: 1.0.20 @@ -18602,7 +18599,7 @@ snapshots: dependencies: '@noble/hashes': 1.2.0 '@noble/secp256k1': 1.7.1 - '@scure/base': 1.1.7 + '@scure/base': 1.1.9 '@scure/bip32@1.3.2': dependencies: @@ -18619,7 +18616,7 @@ snapshots: '@scure/bip39@1.1.1': dependencies: '@noble/hashes': 1.2.0 - '@scure/base': 1.1.7 + '@scure/base': 1.1.9 '@scure/bip39@1.2.1': dependencies: @@ -18753,7 +18750,7 @@ snapshots: '@sentry/types': 5.30.0 tslib: 1.14.1 - '@sentry/nextjs@8.26.0(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.25.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.52.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.25.1(@opentelemetry/api@1.9.0))(encoding@0.1.13)(next@14.2.6(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.8))(react@18.3.1)(webpack@5.94.0(esbuild@0.23.1))': + '@sentry/nextjs@8.26.0(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.25.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.52.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.25.1(@opentelemetry/api@1.9.0))(encoding@0.1.13)(next@14.2.6(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.8))(react@18.3.1)(webpack@5.94.0(esbuild@0.23.1))': dependencies: '@opentelemetry/instrumentation-http': 0.52.1(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.26.0 @@ -18767,7 +18764,7 @@ snapshots: '@sentry/vercel-edge': 8.26.0 '@sentry/webpack-plugin': 2.20.1(encoding@0.1.13)(webpack@5.94.0(esbuild@0.23.1)) chalk: 3.0.0 - next: 14.2.6(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.8) + next: 14.2.6(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.8) resolve: 1.22.8 rollup: 3.29.4 stacktrace-parser: 0.1.10 @@ -19258,7 +19255,7 @@ snapshots: '@types/bn.js@4.11.6': dependencies: - '@types/node': 22.5.0 + '@types/node': 20.3.2 '@types/bn.js@5.1.5': dependencies: @@ -19554,7 +19551,7 @@ snapshots: '@types/node-forge@1.3.11': dependencies: - '@types/node': 22.5.0 + '@types/node': 20.3.2 '@types/node@10.17.60': {} @@ -19688,7 +19685,7 @@ snapshots: '@types/ws@8.5.12': dependencies: - '@types/node': 22.5.0 + '@types/node': 20.3.2 '@types/yargs-parser@21.0.3': {} @@ -19873,11 +19870,11 @@ snapshots: dependencies: '@vanilla-extract/css': 1.14.0 - '@vercel/analytics@1.3.1(next@14.2.6(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.8))(react@18.3.1)': + '@vercel/analytics@1.3.1(next@14.2.6(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.8))(react@18.3.1)': dependencies: server-only: 0.0.1 optionalDependencies: - next: 14.2.6(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.8) + next: 14.2.6(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.8) react: 18.3.1 '@wagmi/connectors@5.1.7(@types/react@18.2.37)(@wagmi/core@2.13.4(@tanstack/query-core@5.52.0)(@types/react@18.2.37)(react@18.3.1)(typescript@5.5.4)(viem@2.21.15(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.23.8)))(bufferutil@4.0.8)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.2(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.2.37)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(typescript@5.5.4)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@3.29.4)(typescript@5.5.4)(utf-8-validate@5.0.10)(viem@2.21.15(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8)': @@ -21305,7 +21302,7 @@ snapshots: chrome-launcher@0.15.2: dependencies: - '@types/node': 22.5.0 + '@types/node': 20.3.2 escape-string-regexp: 4.0.0 is-wsl: 2.2.0 lighthouse-logger: 1.4.2 @@ -21316,7 +21313,7 @@ snapshots: chromium-edge-launcher@0.2.0: dependencies: - '@types/node': 22.5.0 + '@types/node': 20.3.2 escape-string-regexp: 4.0.0 is-wsl: 2.2.0 lighthouse-logger: 1.4.2 @@ -22769,7 +22766,7 @@ snapshots: '@typescript-eslint/parser': 5.62.0(eslint@8.43.0)(typescript@5.5.4) eslint: 8.43.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@5.62.0(eslint@8.43.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.43.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@5.62.0(eslint@8.43.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.43.0))(eslint@8.43.0) eslint-plugin-import: 2.29.1(@typescript-eslint/parser@5.62.0(eslint@8.43.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1)(eslint@8.43.0) eslint-plugin-jsx-a11y: 6.9.0(eslint@8.43.0) eslint-plugin-react: 7.35.0(eslint@8.43.0) @@ -22792,12 +22789,12 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@5.62.0(eslint@8.43.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.43.0): + eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@5.62.0(eslint@8.43.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.43.0))(eslint@8.43.0): dependencies: debug: 4.3.6(supports-color@8.1.1) enhanced-resolve: 5.17.1 eslint: 8.43.0 - eslint-module-utils: 2.8.1(@typescript-eslint/parser@5.62.0(eslint@8.43.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@5.62.0(eslint@8.43.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.43.0))(eslint@8.43.0) + eslint-module-utils: 2.8.1(@typescript-eslint/parser@5.62.0(eslint@8.43.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@5.62.0(eslint@8.43.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.43.0))(eslint@8.43.0))(eslint@8.43.0) eslint-plugin-import: 2.29.1(@typescript-eslint/parser@5.62.0(eslint@8.43.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1)(eslint@8.43.0) fast-glob: 3.3.2 get-tsconfig: 4.7.6 @@ -22809,14 +22806,14 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-module-utils@2.8.1(@typescript-eslint/parser@5.62.0(eslint@8.43.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@5.62.0(eslint@8.43.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.43.0))(eslint@8.43.0): + eslint-module-utils@2.8.1(@typescript-eslint/parser@5.62.0(eslint@8.43.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@5.62.0(eslint@8.43.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.43.0))(eslint@8.43.0))(eslint@8.43.0): dependencies: debug: 3.2.7(supports-color@8.1.1) optionalDependencies: '@typescript-eslint/parser': 5.62.0(eslint@8.43.0)(typescript@5.5.4) eslint: 8.43.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@5.62.0(eslint@8.43.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.43.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@5.62.0(eslint@8.43.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.43.0))(eslint@8.43.0) transitivePeerDependencies: - supports-color @@ -22835,7 +22832,7 @@ snapshots: doctrine: 2.1.0 eslint: 8.43.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.1(@typescript-eslint/parser@5.62.0(eslint@8.43.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@5.62.0(eslint@8.43.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.43.0))(eslint@8.43.0) + eslint-module-utils: 2.8.1(@typescript-eslint/parser@5.62.0(eslint@8.43.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@5.62.0(eslint@8.43.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.43.0))(eslint@8.43.0))(eslint@8.43.0) hasown: 2.0.2 is-core-module: 2.15.1 is-glob: 4.0.3 @@ -24290,7 +24287,7 @@ snapshots: keccak: 3.0.4 lodash: 4.17.21 mnemonist: 0.38.5 - mocha: 10.0.0 + mocha: 10.7.3 p-map: 4.0.0 raw-body: 2.5.2 resolve: 1.17.0 @@ -25223,7 +25220,7 @@ snapshots: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.5.0 + '@types/node': 20.3.2 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -25272,7 +25269,7 @@ snapshots: jest-mock@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.5.0 + '@types/node': 20.3.2 jest-util: 29.7.0 jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): @@ -25381,7 +25378,7 @@ snapshots: jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.5.0 + '@types/node': 20.3.2 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -25409,13 +25406,13 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 22.5.0 + '@types/node': 20.3.2 merge-stream: 2.0.0 supports-color: 8.1.1 jest-worker@29.7.0: dependencies: - '@types/node': 22.5.0 + '@types/node': 20.3.2 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -27062,15 +27059,15 @@ snapshots: neo-async@2.6.2: {} - next-seo@6.5.0(next@14.2.6(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.8))(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + next-seo@6.5.0(next@14.2.6(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.8))(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - next: 14.2.6(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.8) + next: 14.2.6(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.8) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) next-tick@1.1.0: {} - next@14.2.6(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.8): + next@14.2.6(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.8): dependencies: '@next/env': 14.2.6 '@swc/helpers': 0.5.5 @@ -27080,7 +27077,7 @@ snapshots: postcss: 8.4.31 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - styled-jsx: 5.1.1(@babel/core@7.25.2)(babel-plugin-macros@3.1.0)(react@18.3.1) + styled-jsx: 5.1.1(@babel/core@7.25.2)(react@18.3.1) optionalDependencies: '@next/swc-darwin-arm64': 14.2.6 '@next/swc-darwin-x64': 14.2.6 @@ -27097,9 +27094,9 @@ snapshots: - '@babel/core' - babel-plugin-macros - nextjs-toploader@1.6.12(next@14.2.6(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.8))(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + nextjs-toploader@1.6.12(next@14.2.6(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.8))(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - next: 14.2.6(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.8) + next: 14.2.6(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.8) nprogress: 0.2.0 prop-types: 15.8.1 react: 18.3.1 @@ -29570,13 +29567,12 @@ snapshots: stylis: 4.3.2 tslib: 2.6.2 - styled-jsx@5.1.1(@babel/core@7.25.2)(babel-plugin-macros@3.1.0)(react@18.3.1): + styled-jsx@5.1.1(@babel/core@7.25.2)(react@18.3.1): dependencies: client-only: 0.0.1 react: 18.3.1 optionalDependencies: '@babel/core': 7.25.2 - babel-plugin-macros: 3.1.0 stylis@4.2.0: {}