From bead9f1c0a12c1a59169469e525dce172c95dc4c Mon Sep 17 00:00:00 2001 From: Jean Neiverth Date: Tue, 27 Aug 2024 12:07:14 -0300 Subject: [PATCH 1/2] add CreateEventSchema button --- package.json | 2 + src/components/CreateEventSchemaButton.tsx | 50 +++++ src/components/Header.tsx | 2 + src/hooks/useRegistrySchema.ts | 79 ++++++++ src/hooks/useSigner.ts | 39 ++++ src/wagmi.ts | 6 +- yarn.lock | 221 +++++++++++++++++++-- 7 files changed, 377 insertions(+), 22 deletions(-) create mode 100644 src/components/CreateEventSchemaButton.tsx create mode 100644 src/hooks/useRegistrySchema.ts create mode 100644 src/hooks/useSigner.ts diff --git a/package.json b/package.json index 23331f1..f8c9332 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ "dependencies": { "@ethereum-attestation-service/eas-contracts": "^1.7.1", "@ethereum-attestation-service/eas-sdk": "^2.5.0", + "@radix-ui/themes": "^3.1.3", "@rainbow-me/rainbowkit": "^2.1.5", "@tanstack/react-query": "^5.52.1", "class-variance-authority": "^0.7.0", @@ -21,6 +22,7 @@ "react": "^18", "react-dom": "^18", "react-query": "^3.39.3", + "styled-components": "^6.1.12", "tailwind-merge": "^2.5.2", "urql": "^4.1.0", "viem": "2.x", diff --git a/src/components/CreateEventSchemaButton.tsx b/src/components/CreateEventSchemaButton.tsx new file mode 100644 index 0000000..6d1263e --- /dev/null +++ b/src/components/CreateEventSchemaButton.tsx @@ -0,0 +1,50 @@ +import { useRegistrySchema } from "@/hooks/useRegistrySchema"; +import { zeroAddress } from "viem"; +import styled from "styled-components" + +const Button = styled.button` + padding: 0.5rem 1rem; + background-color: gray; + margin-right:1rem; + border-radius:10px; + + &:hover { + background-color: #4a4a4a; + } +` + +// const today = new Date(); +// const tomorrow = new Date(); +// tomorrow.setDate(today.getDate()+1); +// const newEvent = { +// owner:"0xa90914762709441d557De208bAcE1edB1A3968b2", +// name:"test", +// briefDescription:"test description", +// fullDescription:"Lorem ipsum dolor sit amet, consectetur adipisicing elit. Voluptate, numquam! Esse officia molestiae illum nihil dolorum rem debitis laborum ab. Quaerat voluptatibus repellendus deserunt porro distinctio laboriosam earum nesciunt laborum?", +// startsAt: today.valueOf(), +// endsAt: tomorrow.valueOf(), +// imageUrl:"https://picsum.photos/id/237/200/300", +// } as EventSchema +// console.log('newEvent', newEvent) + +const CREATE_EVENT_SCHEMA = + "string name, string briefDescription, string fullDescription, uint256 startsAt, uint256 endsAt, string imageUrl" + +export function CreateEventSchemaButton() { + const registrySchema = useRegistrySchema(); + + async function handleCreateEventSchema() { + + registrySchema({ + schema:CREATE_EVENT_SCHEMA, + resolver:zeroAddress, + revocable:true, + }) + } + + return ( + + ) +} \ No newline at end of file diff --git a/src/components/Header.tsx b/src/components/Header.tsx index 93ac7af..e6f56e6 100644 --- a/src/components/Header.tsx +++ b/src/components/Header.tsx @@ -86,6 +86,7 @@ import { ConnectButton } from '@rainbow-me/rainbowkit'; +import { CreateEventSchemaButton } from './CreateEventSchemaButton'; export function Header() { return ( @@ -96,6 +97,7 @@ export function Header() { padding: 12, }} > + ); diff --git a/src/hooks/useRegistrySchema.ts b/src/hooks/useRegistrySchema.ts new file mode 100644 index 0000000..5ae3baf --- /dev/null +++ b/src/hooks/useRegistrySchema.ts @@ -0,0 +1,79 @@ +import { useSigner } from "@/hooks/useSigner"; +import { encodePacked, keccak256, zeroAddress } from "viem"; +import { EAS, SchemaRegistry } from "@ethereum-attestation-service/eas-sdk"; +import { useCallback, useEffect, useState } from "react"; + +interface RegistrySchemaParms { + schema: string, + resolver:`0x${string}`, + revocable:boolean, +}; + +export const useRegistrySchema = () => { + + // Optimism Sepolia Version 1.0.2 + const EAS_CONTRACT_ADDRESS = "0x4200000000000000000000000000000000000021" //Deployment and ABI: EAS.json + const SCHEMA_REGISTRY_CONTRACT_ADDRESS = "0x4200000000000000000000000000000000000020" //Deployment and ABI: SchemaRegistry.json + + const [schemaRegistry, setSchemaRegistry] = useState(null); + const [eas, setEas] = useState(null); + const signer = useSigner(); + + useEffect(() => { + if (signer) { + const newEas = new EAS(EAS_CONTRACT_ADDRESS); + newEas.connect(signer); + setEas(newEas); + + const newSchemaRegistry = new SchemaRegistry(SCHEMA_REGISTRY_CONTRACT_ADDRESS); + newSchemaRegistry.connect(signer); + setSchemaRegistry(newSchemaRegistry); + } + }, [signer]); + + const registrySchema = useCallback(async ({schema, resolver, revocable}:RegistrySchemaParms) => { + console.log(` + ---Called registrySchema. Create Schema: + schema: ${schema} + resolver: ${resolver} + revocable: ${revocable} + --- + + `) + + const SCHEMA_UID = keccak256( + encodePacked( + ["string", "address", "bool"], + [schema, resolver, revocable], + ), + ); + console.log('Schema UID:',SCHEMA_UID) + + const isAbleToOperateSchema = (signer && schemaRegistry) + console.log('isAbleToOperateSchema',isAbleToOperateSchema); + + if (isAbleToOperateSchema) { + try { + await schemaRegistry.getSchema({ uid: SCHEMA_UID }); + console.log('No errors getting schema'); + } catch (e) { + // If schemas don't exist, create them + console.log('No existing schema, creating a new one...'); + const selfAttestationTx = await schemaRegistry.connect(signer).register({ + schema: schema, + resolverAddress: zeroAddress, + revocable: true, + }); + await selfAttestationTx.wait(); + console.log('Schema should have been created!'); + } + } else { + console.log('Not possible to create schema'); + console.log('signer',signer) + console.log('schemaRegistry',schemaRegistry) + } + } + ,[signer,schemaRegistry]); + + return registrySchema; +} \ No newline at end of file diff --git a/src/hooks/useSigner.ts b/src/hooks/useSigner.ts new file mode 100644 index 0000000..6153412 --- /dev/null +++ b/src/hooks/useSigner.ts @@ -0,0 +1,39 @@ +// based on https://gist.github.com/slavik0329/2e5b6fc31cb745b65d3d37f7cf1d7b36 +import { useEffect, useState } from "react"; +import { useWalletClient } from "wagmi"; +import { type WalletClient } from "viem"; +import { BrowserProvider, JsonRpcSigner } from "ethers"; + +export async function walletClientToSigner(walletClient: WalletClient) { + const { account, chain, transport } = walletClient; + if (!chain || !account) { + return; + } + + const network = { + chainId: chain.id, + name: chain.name, + ensAddress: chain.contracts?.ensRegistry?.address, + }; + + const provider = new BrowserProvider(transport, network); + const signer = await provider.getSigner(account.address); + + return signer; +} + +export function useSigner() { + const { data: walletClient } = useWalletClient(); + + const [signer, setSigner] = useState(undefined); + + useEffect(() => { + if (walletClient) { + walletClientToSigner(walletClient).then((signer) => { + setSigner(signer); + }); + } + }, [walletClient]); + + return signer; +} diff --git a/src/wagmi.ts b/src/wagmi.ts index c959d19..28892f6 100644 --- a/src/wagmi.ts +++ b/src/wagmi.ts @@ -1,10 +1,10 @@ import { http, cookieStorage, createConfig, createStorage } from "wagmi"; -import { mainnet, optimism, sepolia } from "wagmi/chains"; +import { mainnet, optimism, sepolia, optimismSepolia } from "wagmi/chains"; import { coinbaseWallet, injected } from "wagmi/connectors"; export function getConfig() { return createConfig({ - chains: [optimism], + chains: [optimismSepolia], connectors: [ injected(), coinbaseWallet(), @@ -17,7 +17,7 @@ export function getConfig() { transports: { // [mainnet.id]: http(), // [sepolia.id]: http(), - [optimism.id]: http(), + [optimismSepolia.id]: http(), }, }); } diff --git a/yarn.lock b/yarn.lock index 3a99e54..0ce3d8b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -46,6 +46,23 @@ resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.9.2.tgz#ff9221b9f58b4dfe61e619a7788734bd63f6898b" integrity sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g== +"@emotion/is-prop-valid@1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-1.2.2.tgz#d4175076679c6a26faa92b03bb786f9e52612337" + integrity sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw== + dependencies: + "@emotion/memoize" "^0.8.1" + +"@emotion/memoize@^0.8.1": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.8.1.tgz#c1ddb040429c6d21d38cc945fe75c818cfb68e17" + integrity sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA== + +"@emotion/unitless@0.8.1": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.8.1.tgz#182b5a4704ef8ad91bde93f7a860a88fd92c79a3" + integrity sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ== + "@eslint-community/eslint-utils@^4.2.0": version "4.4.0" resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" @@ -1046,6 +1063,11 @@ resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== +"@radix-ui/colors@3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@radix-ui/colors/-/colors-3.0.0.tgz#e8a591a303c44e503bd1212cacf40a09511165e0" + integrity sha512-FUOsGBkHrYJwCSEtWRCIfQbZG7q1e6DgxCIOe1SUQzDe/7rXXeA47s8yCn6fuTNQAj1Zq4oTFi9Yjp3wzElcxg== + "@radix-ui/number@1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@radix-ui/number/-/number-1.1.0.tgz#1e95610461a09cdf8bb05c152e76ca1278d5da46" @@ -1056,7 +1078,7 @@ resolved "https://registry.yarnpkg.com/@radix-ui/primitive/-/primitive-1.1.0.tgz#42ef83b3b56dccad5d703ae8c42919a68798bbe2" integrity sha512-4Z8dn6Upk0qk4P74xBhZ6Hd/w0mPEzOOLxy4xiPXOXqjF7jZS0VAKk7/x/H6FyY2zCkYJqePf1G5KmkmNJ4RBA== -"@radix-ui/react-accessible-icon@latest": +"@radix-ui/react-accessible-icon@1.1.0", "@radix-ui/react-accessible-icon@latest": version "1.1.0" resolved "https://registry.yarnpkg.com/@radix-ui/react-accessible-icon/-/react-accessible-icon-1.1.0.tgz#2ae1f2b21842cc3ed4b829203b557951112b7c91" integrity sha512-i9Zg4NOSXlfUva0agzI2DjWrvFJm9uO4L6CMW7nmMa5CIOOX/Yin894W7WwjodFQWPwe5kmAJ4JF33R8slKI2g== @@ -1078,7 +1100,7 @@ "@radix-ui/react-primitive" "2.0.0" "@radix-ui/react-use-controllable-state" "1.1.0" -"@radix-ui/react-alert-dialog@latest": +"@radix-ui/react-alert-dialog@1.1.1", "@radix-ui/react-alert-dialog@latest": version "1.1.1" resolved "https://registry.yarnpkg.com/@radix-ui/react-alert-dialog/-/react-alert-dialog-1.1.1.tgz#f49c987b9e4f2bf37005b3864933e2b3beac907a" integrity sha512-wmCoJwj7byuVuiLKqDLlX7ClSUU0vd9sdCeM+2Ls+uf13+cpSJoMgwysHq1SGVVkJj5Xn0XWi1NoRCdkMpr6Mw== @@ -1097,14 +1119,14 @@ dependencies: "@radix-ui/react-primitive" "2.0.0" -"@radix-ui/react-aspect-ratio@latest": +"@radix-ui/react-aspect-ratio@1.1.0", "@radix-ui/react-aspect-ratio@latest": version "1.1.0" resolved "https://registry.yarnpkg.com/@radix-ui/react-aspect-ratio/-/react-aspect-ratio-1.1.0.tgz#b646d044420a63046ad794db1efa3001c4be24ef" integrity sha512-dP87DM/Y7jFlPgUZTlhx6FF5CEzOiaxp2rBCKlaXlpH5Ip/9Fg5zZ9lDOQ5o/MOfUlf36eak14zoWYpgcgGoOg== dependencies: "@radix-ui/react-primitive" "2.0.0" -"@radix-ui/react-avatar@latest": +"@radix-ui/react-avatar@1.1.0", "@radix-ui/react-avatar@latest": version "1.1.0" resolved "https://registry.yarnpkg.com/@radix-ui/react-avatar/-/react-avatar-1.1.0.tgz#457c81334c93f4608df15f081e7baa286558d6a2" integrity sha512-Q/PbuSMk/vyAd/UoIShVGZ7StHHeRFYU7wXmi5GV+8cLXflZAEpHL/F697H1klrzxKXNtZ97vWiC0q3RKUH8UA== @@ -1114,6 +1136,20 @@ "@radix-ui/react-use-callback-ref" "1.1.0" "@radix-ui/react-use-layout-effect" "1.1.0" +"@radix-ui/react-checkbox@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@radix-ui/react-checkbox/-/react-checkbox-1.1.0.tgz#ecfcdc4bd27f0606931c328836a09cc76085307a" + integrity sha512-3+kSzVfMONtP3B6CvaOrXLVTyGYws7tGmG5kOY0AfyH9sexkLytIwciNwjZhY0RoGOEbxI7bMS21XYB8H5itWQ== + dependencies: + "@radix-ui/primitive" "1.1.0" + "@radix-ui/react-compose-refs" "1.1.0" + "@radix-ui/react-context" "1.1.0" + "@radix-ui/react-presence" "1.1.0" + "@radix-ui/react-primitive" "2.0.0" + "@radix-ui/react-use-controllable-state" "1.1.0" + "@radix-ui/react-use-previous" "1.1.0" + "@radix-ui/react-use-size" "1.1.0" + "@radix-ui/react-checkbox@latest": version "1.1.1" resolved "https://registry.yarnpkg.com/@radix-ui/react-checkbox/-/react-checkbox-1.1.1.tgz#a559c4303957d797acee99914480b755aa1f27d6" @@ -1157,7 +1193,7 @@ resolved "https://registry.yarnpkg.com/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.0.tgz#656432461fc8283d7b591dcf0d79152fae9ecc74" integrity sha512-b4inOtiaOnYf9KWyO3jAeeCG6FeyfY6ldiEPanbUjWd+xIk5wZeHa8yVwmrJ2vderhu/BQvzCrJI0lHd+wIiqw== -"@radix-ui/react-context-menu@latest": +"@radix-ui/react-context-menu@2.2.1", "@radix-ui/react-context-menu@latest": version "2.2.1" resolved "https://registry.yarnpkg.com/@radix-ui/react-context-menu/-/react-context-menu-2.2.1.tgz#a2c7812336a40cd22900c888336ad6e1adc6a1bc" integrity sha512-wvMKKIeb3eOrkJ96s722vcidZ+2ZNfcYZWBPRHIB1VWrF+fiF851Io6LX0kmK5wTDQFKdulCCKJk2c3SBaQHvA== @@ -1210,7 +1246,7 @@ "@radix-ui/react-use-callback-ref" "1.1.0" "@radix-ui/react-use-escape-keydown" "1.1.0" -"@radix-ui/react-dropdown-menu@latest": +"@radix-ui/react-dropdown-menu@2.1.1", "@radix-ui/react-dropdown-menu@latest": version "2.1.1" resolved "https://registry.yarnpkg.com/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.1.tgz#3dc578488688250dbbe109d9ff2ca28a9bca27ec" integrity sha512-y8E+x9fBq9qvteD2Zwa4397pUVhYsh9iq44b5RD5qu1GMJWBCBuVg1hMyItbc6+zH00TxGRqd9Iot4wzf3OoBQ== @@ -1237,7 +1273,19 @@ "@radix-ui/react-primitive" "2.0.0" "@radix-ui/react-use-callback-ref" "1.1.0" -"@radix-ui/react-hover-card@latest": +"@radix-ui/react-form@0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@radix-ui/react-form/-/react-form-0.1.0.tgz#7111a6aa54a2bde0d11fb72643f9ffc871ac58ad" + integrity sha512-1/oVYPDjbFILOLIarcGcMKo+y6SbTVT/iUKVEw59CF4offwZgBgC3ZOeSBewjqU0vdA6FWTPWTN63obj55S/tQ== + dependencies: + "@radix-ui/primitive" "1.1.0" + "@radix-ui/react-compose-refs" "1.1.0" + "@radix-ui/react-context" "1.1.0" + "@radix-ui/react-id" "1.1.0" + "@radix-ui/react-label" "2.1.0" + "@radix-ui/react-primitive" "2.0.0" + +"@radix-ui/react-hover-card@1.1.1", "@radix-ui/react-hover-card@latest": version "1.1.1" resolved "https://registry.yarnpkg.com/@radix-ui/react-hover-card/-/react-hover-card-1.1.1.tgz#2982a5a91c7ae5a98e0cacd845fbdfbfdcdab355" integrity sha512-IwzAOP97hQpDADYVKrEEHUH/b2LA+9MgB0LgdmnbFO2u/3M5hmEofjjr2M6CyzUblaAqJdFm6B7oFtU72DPXrA== @@ -1259,7 +1307,7 @@ dependencies: "@radix-ui/react-use-layout-effect" "1.1.0" -"@radix-ui/react-label@latest": +"@radix-ui/react-label@2.1.0", "@radix-ui/react-label@latest": version "2.1.0" resolved "https://registry.yarnpkg.com/@radix-ui/react-label/-/react-label-2.1.0.tgz#3aa2418d70bb242be37c51ff5e51a2adcbc372e3" integrity sha512-peLblDlFw/ngk3UWq0VnYaOLy6agTZZ+MUO/WhVfm14vJGML+xH4FAl2XQGLqdefjNb7ApRg6Yn7U42ZhmYXdw== @@ -1290,7 +1338,7 @@ aria-hidden "^1.1.1" react-remove-scroll "2.5.7" -"@radix-ui/react-navigation-menu@latest": +"@radix-ui/react-navigation-menu@1.2.0", "@radix-ui/react-navigation-menu@latest": version "1.2.0" resolved "https://registry.yarnpkg.com/@radix-ui/react-navigation-menu/-/react-navigation-menu-1.2.0.tgz#884c9b9fd141cc5db257bd3f6bf3b84e349c6617" integrity sha512-OQ8tcwAOR0DhPlSY3e4VMXeHiol7la4PPdJWhhwJiJA+NLX0SaCaonOkRnI3gCDHoZ7Fo7bb/G6q25fRM2Y+3Q== @@ -1310,7 +1358,7 @@ "@radix-ui/react-use-previous" "1.1.0" "@radix-ui/react-visually-hidden" "1.1.0" -"@radix-ui/react-popover@latest": +"@radix-ui/react-popover@1.1.1", "@radix-ui/react-popover@latest": version "1.1.1" resolved "https://registry.yarnpkg.com/@radix-ui/react-popover/-/react-popover-1.1.1.tgz#604b783cdb3494ed4f16a58c17f0e81e61ab7775" integrity sha512-3y1A3isulwnWhvTTwmIreiB8CF4L+qRjZnK1wYLO7pplddzXKby/GnZ2M7OZY3qgnl6p9AodUIHRYGXNah8Y7g== @@ -1370,7 +1418,7 @@ dependencies: "@radix-ui/react-slot" "1.1.0" -"@radix-ui/react-progress@latest": +"@radix-ui/react-progress@1.1.0", "@radix-ui/react-progress@latest": version "1.1.0" resolved "https://registry.yarnpkg.com/@radix-ui/react-progress/-/react-progress-1.1.0.tgz#28c267885ec154fc557ec7a66cb462787312f7e2" integrity sha512-aSzvnYpP725CROcxAOEBVZZSIQVQdHgBr2QQFKySsaD14u8dNT0batuXI+AAGDdAHfXH8rbnHmjYFqVJ21KkRg== @@ -1378,7 +1426,7 @@ "@radix-ui/react-context" "1.1.0" "@radix-ui/react-primitive" "2.0.0" -"@radix-ui/react-radio-group@latest": +"@radix-ui/react-radio-group@1.2.0", "@radix-ui/react-radio-group@latest": version "1.2.0" resolved "https://registry.yarnpkg.com/@radix-ui/react-radio-group/-/react-radio-group-1.2.0.tgz#f937dd6b9436ded80c4bebdf3901c20cb8bcbb5a" integrity sha512-yv+oiLaicYMBpqgfpSPw6q+RyXlLdIpQWDHZbUKURxe+nEh53hFXPPlfhfQQtYkS5MMK/5IWIa76SksleQZSzw== @@ -1409,7 +1457,7 @@ "@radix-ui/react-use-callback-ref" "1.1.0" "@radix-ui/react-use-controllable-state" "1.1.0" -"@radix-ui/react-scroll-area@latest": +"@radix-ui/react-scroll-area@1.1.0", "@radix-ui/react-scroll-area@latest": version "1.1.0" resolved "https://registry.yarnpkg.com/@radix-ui/react-scroll-area/-/react-scroll-area-1.1.0.tgz#50b24b0fc9ada151d176395bcf47b2ec68feada5" integrity sha512-9ArIZ9HWhsrfqS765h+GZuLoxaRHD/j0ZWOWilsCvYTpYJp8XwCqNG7Dt9Nu/TItKOdgLGkOPCodQvDc+UMwYg== @@ -1424,7 +1472,7 @@ "@radix-ui/react-use-callback-ref" "1.1.0" "@radix-ui/react-use-layout-effect" "1.1.0" -"@radix-ui/react-select@latest": +"@radix-ui/react-select@2.1.1", "@radix-ui/react-select@latest": version "2.1.1" resolved "https://registry.yarnpkg.com/@radix-ui/react-select/-/react-select-2.1.1.tgz#df05cb0b29d3deaef83b505917c4042e0e418a9f" integrity sha512-8iRDfyLtzxlprOo9IicnzvpsO1wNCkuwzzCM+Z5Rb5tNOpCdMvcc2AkzX0Fz+Tz9v6NJ5B/7EEgyZveo4FBRfQ== @@ -1458,7 +1506,7 @@ dependencies: "@radix-ui/react-primitive" "2.0.0" -"@radix-ui/react-slider@latest": +"@radix-ui/react-slider@1.2.0", "@radix-ui/react-slider@latest": version "1.2.0" resolved "https://registry.yarnpkg.com/@radix-ui/react-slider/-/react-slider-1.2.0.tgz#7a4c817d24386b420631a3fdc75563706d743472" integrity sha512-dAHCDA4/ySXROEPaRtaMV5WHL8+JB/DbtyTbJjYkY0RXmKMO2Ln8DFZhywG5/mVQ4WqHDBc8smc14yPXPqZHYA== @@ -1482,7 +1530,7 @@ dependencies: "@radix-ui/react-compose-refs" "1.1.0" -"@radix-ui/react-switch@latest": +"@radix-ui/react-switch@1.1.0", "@radix-ui/react-switch@latest": version "1.1.0" resolved "https://registry.yarnpkg.com/@radix-ui/react-switch/-/react-switch-1.1.0.tgz#fcf8e778500f1d60d4b2bec2fc3fad77a7c118e3" integrity sha512-OBzy5WAj641k0AOSpKQtreDMe+isX0MQJ1IVyF03ucdF3DunOnROVrjWs8zsXUxC3zfZ6JL9HFVCUlMghz9dJw== @@ -1495,7 +1543,7 @@ "@radix-ui/react-use-previous" "1.1.0" "@radix-ui/react-use-size" "1.1.0" -"@radix-ui/react-tabs@latest": +"@radix-ui/react-tabs@1.1.0", "@radix-ui/react-tabs@latest": version "1.1.0" resolved "https://registry.yarnpkg.com/@radix-ui/react-tabs/-/react-tabs-1.1.0.tgz#0a6db1caed56776a1176aae68532060e301cc1c0" integrity sha512-bZgOKB/LtZIij75FSuPzyEti/XBhJH52ExgtdVqjCIh+Nx/FW+LhnbXtbCzIi34ccyMsyOja8T0thCzoHFXNKA== @@ -1562,6 +1610,24 @@ "@radix-ui/react-separator" "1.1.0" "@radix-ui/react-toggle-group" "1.1.0" +"@radix-ui/react-tooltip@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@radix-ui/react-tooltip/-/react-tooltip-1.1.1.tgz#1807386562015c49b3e83d938910dd47f8cc6175" + integrity sha512-LLE8nzNE4MzPMw3O2zlVlkLFid3y9hMUs7uCbSHyKSo+tCN4yMCf+ZCCcfrYgsOC0TiHBPQ1mtpJ2liY3ZT3SQ== + dependencies: + "@radix-ui/primitive" "1.1.0" + "@radix-ui/react-compose-refs" "1.1.0" + "@radix-ui/react-context" "1.1.0" + "@radix-ui/react-dismissable-layer" "1.1.0" + "@radix-ui/react-id" "1.1.0" + "@radix-ui/react-popper" "1.2.0" + "@radix-ui/react-portal" "1.1.1" + "@radix-ui/react-presence" "1.1.0" + "@radix-ui/react-primitive" "2.0.0" + "@radix-ui/react-slot" "1.1.0" + "@radix-ui/react-use-controllable-state" "1.1.0" + "@radix-ui/react-visually-hidden" "1.1.0" + "@radix-ui/react-tooltip@latest": version "1.1.2" resolved "https://registry.yarnpkg.com/@radix-ui/react-tooltip/-/react-tooltip-1.1.2.tgz#c42db2ffd7dcc6ff3d65407c8cb70490288f518d" @@ -1635,6 +1701,47 @@ resolved "https://registry.yarnpkg.com/@radix-ui/rect/-/rect-1.1.0.tgz#f817d1d3265ac5415dadc67edab30ae196696438" integrity sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg== +"@radix-ui/themes@^3.1.3": + version "3.1.3" + resolved "https://registry.yarnpkg.com/@radix-ui/themes/-/themes-3.1.3.tgz#9b4287d4e60c9a175e0e453ba620d693fadf6f7e" + integrity sha512-GJt4r7Vh0w4yiGuqOKLvrZXLEAxUWfEUUtdj17rCfi+P/zpKUc7TsXro8GftA2Y1tm78Cx9x1HKt23dHc/WqIA== + dependencies: + "@radix-ui/colors" "3.0.0" + "@radix-ui/primitive" "1.1.0" + "@radix-ui/react-accessible-icon" "1.1.0" + "@radix-ui/react-alert-dialog" "1.1.1" + "@radix-ui/react-aspect-ratio" "1.1.0" + "@radix-ui/react-avatar" "1.1.0" + "@radix-ui/react-checkbox" "1.1.0" + "@radix-ui/react-compose-refs" "1.1.0" + "@radix-ui/react-context" "1.1.0" + "@radix-ui/react-context-menu" "2.2.1" + "@radix-ui/react-dialog" "1.1.1" + "@radix-ui/react-direction" "1.1.0" + "@radix-ui/react-dropdown-menu" "2.1.1" + "@radix-ui/react-form" "0.1.0" + "@radix-ui/react-hover-card" "1.1.1" + "@radix-ui/react-navigation-menu" "1.2.0" + "@radix-ui/react-popover" "1.1.1" + "@radix-ui/react-portal" "1.1.1" + "@radix-ui/react-primitive" "2.0.0" + "@radix-ui/react-progress" "1.1.0" + "@radix-ui/react-radio-group" "1.2.0" + "@radix-ui/react-roving-focus" "1.1.0" + "@radix-ui/react-scroll-area" "1.1.0" + "@radix-ui/react-select" "2.1.1" + "@radix-ui/react-slider" "1.2.0" + "@radix-ui/react-slot" "1.1.0" + "@radix-ui/react-switch" "1.1.0" + "@radix-ui/react-tabs" "1.1.0" + "@radix-ui/react-toggle-group" "1.1.0" + "@radix-ui/react-tooltip" "1.1.1" + "@radix-ui/react-use-callback-ref" "1.1.0" + "@radix-ui/react-use-controllable-state" "1.1.0" + "@radix-ui/react-visually-hidden" "1.1.0" + classnames "2.3.2" + react-remove-scroll-bar "2.3.4" + "@rainbow-me/rainbowkit@^2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@rainbow-me/rainbowkit/-/rainbowkit-2.1.5.tgz#913169f9fb4518cff8fe2856ea2333e754b8bb00" @@ -2039,6 +2146,11 @@ dependencies: "@types/node" "*" +"@types/stylis@4.2.5": + version "4.2.5" + resolved "https://registry.yarnpkg.com/@types/stylis/-/stylis-4.2.5.tgz#1daa6456f40959d06157698a653a9ab0a70281df" + integrity sha512-1Xve+NMN7FWjY14vLoY5tL3BVEQ/n42YLwaqJIPYhotZ9uBHt87VceMwWQpzmdEt2TNXIorIFG+YeCUUW7RInw== + "@types/trusted-types@^2.0.2": version "2.0.7" resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.7.tgz#baccb07a970b91707df3a3e8ba6896c57ead2d11" @@ -2894,6 +3006,11 @@ camelcase@^6.0.0, camelcase@^6.2.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== +camelize@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/camelize/-/camelize-1.0.1.tgz#89b7e16884056331a35d6b5ad064332c91daa6c3" + integrity sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ== + caniuse-lite@^1.0.30001579: version "1.0.30001653" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001653.tgz#b8af452f8f33b1c77f122780a4aecebea0caca56" @@ -2973,6 +3090,11 @@ class-variance-authority@^0.7.0: dependencies: clsx "2.0.0" +classnames@2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.2.tgz#351d813bf0137fcc6a76a16b88208d2560a0d924" + integrity sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw== + clean-stack@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" @@ -3164,6 +3286,20 @@ crossws@^0.2.0, crossws@^0.2.4: resolved "https://registry.yarnpkg.com/crossws/-/crossws-0.2.4.tgz#82a8b518bff1018ab1d21ced9e35ffbe1681ad03" integrity sha512-DAxroI2uSOgUKLz00NX6A8U/8EE3SZHmIND+10jkVSaypvyt57J5JEOxAQOL6lQxyzi/wZbTIwssU1uy69h5Vg== +css-color-keywords@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/css-color-keywords/-/css-color-keywords-1.0.0.tgz#fea2616dc676b2962686b3af8dbdbe180b244e05" + integrity sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg== + +css-to-react-native@3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/css-to-react-native/-/css-to-react-native-3.2.0.tgz#cdd8099f71024e149e4f6fe17a7d46ecd55f1e32" + integrity sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ== + dependencies: + camelize "^1.0.0" + css-color-keywords "^1.0.0" + postcss-value-parser "^4.0.2" + css-what@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" @@ -3174,7 +3310,7 @@ cssesc@^3.0.0: resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== -csstype@^3.0.2, csstype@^3.0.7: +csstype@3.1.3, csstype@^3.0.2, csstype@^3.0.7: version "3.1.3" resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== @@ -5995,7 +6131,7 @@ postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.1.1: cssesc "^3.0.0" util-deprecate "^1.0.2" -postcss-value-parser@^4.0.0: +postcss-value-parser@^4.0.0, postcss-value-parser@^4.0.2: version "4.2.0" resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== @@ -6009,6 +6145,15 @@ postcss@8.4.31: picocolors "^1.0.0" source-map-js "^1.0.2" +postcss@8.4.38: + version "8.4.38" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.38.tgz#b387d533baf2054288e337066d81c6bee9db9e0e" + integrity sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A== + dependencies: + nanoid "^3.3.7" + picocolors "^1.0.0" + source-map-js "^1.2.0" + postcss@^8, postcss@^8.4.23: version "8.4.41" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.41.tgz#d6104d3ba272d882fe18fc07d15dc2da62fa2681" @@ -6206,6 +6351,14 @@ react-query@^3.39.3: broadcast-channel "^3.4.1" match-sorter "^6.0.2" +react-remove-scroll-bar@2.3.4: + version "2.3.4" + resolved "https://registry.yarnpkg.com/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.4.tgz#53e272d7a5cb8242990c7f144c44d8bd8ab5afd9" + integrity sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A== + dependencies: + react-style-singleton "^2.2.1" + tslib "^2.0.0" + react-remove-scroll-bar@^2.3.4: version "2.3.6" resolved "https://registry.yarnpkg.com/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.6.tgz#3e585e9d163be84a010180b18721e851ac81a29c" @@ -6563,6 +6716,11 @@ sha.js@^2.4.0, sha.js@^2.4.11, sha.js@^2.4.8: inherits "^2.0.1" safe-buffer "^5.0.1" +shallowequal@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" + integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== + shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" @@ -6853,6 +7011,21 @@ strip-json-comments@^3.1.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== +styled-components@^6.1.12: + version "6.1.12" + resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-6.1.12.tgz#0d9d511aacfb9052936146dcc2856559e6fae4df" + integrity sha512-n/O4PzRPhbYI0k1vKKayfti3C/IGcPf+DqcrOB7O/ab9x4u/zjqraneT5N45+sIe87cxrCApXM8Bna7NYxwoTA== + dependencies: + "@emotion/is-prop-valid" "1.2.2" + "@emotion/unitless" "0.8.1" + "@types/stylis" "4.2.5" + css-to-react-native "3.2.0" + csstype "3.1.3" + postcss "8.4.38" + shallowequal "1.1.0" + stylis "4.3.2" + tslib "2.6.2" + styled-jsx@5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-5.1.1.tgz#839a1c3aaacc4e735fed0781b8619ea5d0009d1f" @@ -6860,6 +7033,11 @@ styled-jsx@5.1.1: dependencies: client-only "0.0.1" +stylis@4.3.2: + version "4.3.2" + resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.3.2.tgz#8f76b70777dd53eb669c6f58c997bf0a9972e444" + integrity sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg== + sucrase@^3.32.0: version "3.35.0" resolved "https://registry.yarnpkg.com/sucrase/-/sucrase-3.35.0.tgz#57f17a3d7e19b36d8995f06679d121be914ae263" @@ -7027,6 +7205,11 @@ tslib@2.4.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== +tslib@2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== + tslib@^2.0.0, tslib@^2.1.0, tslib@^2.3.1, tslib@^2.4.0: version "2.7.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.7.0.tgz#d9b40c5c40ab59e8738f297df3087bf1a2690c01" From 7d1ce5af4af2b759911580a833c09b40e90985eb Mon Sep 17 00:00:00 2001 From: Jean Neiverth Date: Tue, 27 Aug 2024 15:32:14 -0300 Subject: [PATCH 2/2] resolve review --- src/app/providers.tsx | 8 +-- src/components/CreateEventSchemaButton.tsx | 20 ++---- src/components/Header.tsx | 84 ---------------------- src/hooks/useRegistrySchema.ts | 9 +-- src/wagmi.ts | 5 +- 5 files changed, 13 insertions(+), 113 deletions(-) diff --git a/src/app/providers.tsx b/src/app/providers.tsx index e83e270..46ca59a 100644 --- a/src/app/providers.tsx +++ b/src/app/providers.tsx @@ -9,18 +9,12 @@ import { Provider } from "urql"; import { client } from "../lib/urql-client"; import '@rainbow-me/rainbowkit/styles.css'; -import { - getDefaultConfig, - RainbowKitProvider, - type Locale, -} from '@rainbow-me/rainbowkit'; -import { useRouter } from 'next/router'; +import { RainbowKitProvider} from '@rainbow-me/rainbowkit'; export function Providers(props: { children: ReactNode; initialState?: State; }) { - // const {locale} = useRouter() as {locale:Locale} const [config] = useState(() => getConfig()); const [queryClient] = useState(() => new QueryClient()); diff --git a/src/components/CreateEventSchemaButton.tsx b/src/components/CreateEventSchemaButton.tsx index 6d1263e..30009a4 100644 --- a/src/components/CreateEventSchemaButton.tsx +++ b/src/components/CreateEventSchemaButton.tsx @@ -1,17 +1,5 @@ import { useRegistrySchema } from "@/hooks/useRegistrySchema"; import { zeroAddress } from "viem"; -import styled from "styled-components" - -const Button = styled.button` - padding: 0.5rem 1rem; - background-color: gray; - margin-right:1rem; - border-radius:10px; - - &:hover { - background-color: #4a4a4a; - } -` // const today = new Date(); // const tomorrow = new Date(); @@ -34,7 +22,6 @@ export function CreateEventSchemaButton() { const registrySchema = useRegistrySchema(); async function handleCreateEventSchema() { - registrySchema({ schema:CREATE_EVENT_SCHEMA, resolver:zeroAddress, @@ -43,8 +30,11 @@ export function CreateEventSchemaButton() { } return ( - + ) } \ No newline at end of file diff --git a/src/components/Header.tsx b/src/components/Header.tsx index e6f56e6..fe1a17c 100644 --- a/src/components/Header.tsx +++ b/src/components/Header.tsx @@ -1,87 +1,3 @@ -// "use client"; -// import React from "react"; -// import { useAccount, useBalance, useConnect, useDisconnect, useEnsName } from "wagmi"; -// import { Button } from "@/components/ui/button"; -// import { -// DropdownMenu, -// DropdownMenuContent, -// DropdownMenuItem, -// DropdownMenuTrigger, -// } from "@/components/ui/dropdown-menu"; - -// function formatAddress(address:string) { -// return address.slice(0, 6) + "..." + address.slice(-4); -// } - -// function DisconnectWallet({ balance, connector, ensName, address, disconnect }:any) { -// return ( -// -//
-// -// -// -//

{connector?.name || ""}

-//

OPT: {balance?.data ? balance.data.formatted : "Sem balanço"}

-//
-// -// disconnect()}> -// Disconnect -// -// -//
-// ); -// } - -// export function Header() { -// const { address, isConnected, connector, chain } = useAccount(); -// const { data: ensName } = useEnsName({address,}); -// const { connect, connectors } = useConnect(); -// const { disconnect } = useDisconnect(); -// const balance = useBalance({address,chainId:10}) - -// function ConnectWallet({ connectors }:any) { -// return ( -// -// -// -// -// -// {connectors.map((connector:any) => ( -// connect({ connector })} -// > -// {connector.name} -// -// ))} -// -// -// ); -// } - -// console.log(balance); - -// return ( -//
-//
-//

Bacchus: Events and Invitations

-// {isConnected ? ( -// -// ) : ( -// -// )} -//
-//
-// ); -// } "use client" diff --git a/src/hooks/useRegistrySchema.ts b/src/hooks/useRegistrySchema.ts index 5ae3baf..e42f5a7 100644 --- a/src/hooks/useRegistrySchema.ts +++ b/src/hooks/useRegistrySchema.ts @@ -2,18 +2,19 @@ import { useSigner } from "@/hooks/useSigner"; import { encodePacked, keccak256, zeroAddress } from "viem"; import { EAS, SchemaRegistry } from "@ethereum-attestation-service/eas-sdk"; import { useCallback, useEffect, useState } from "react"; +import type {Address} from "viem" interface RegistrySchemaParms { schema: string, - resolver:`0x${string}`, + resolver:Address, revocable:boolean, }; export const useRegistrySchema = () => { - // Optimism Sepolia Version 1.0.2 - const EAS_CONTRACT_ADDRESS = "0x4200000000000000000000000000000000000021" //Deployment and ABI: EAS.json - const SCHEMA_REGISTRY_CONTRACT_ADDRESS = "0x4200000000000000000000000000000000000020" //Deployment and ABI: SchemaRegistry.json + // Addresses only valid for Optimism Sepolia + const EAS_CONTRACT_ADDRESS = "0x4200000000000000000000000000000000000021" + const SCHEMA_REGISTRY_CONTRACT_ADDRESS = "0x4200000000000000000000000000000000000020" const [schemaRegistry, setSchemaRegistry] = useState(null); const [eas, setEas] = useState(null); diff --git a/src/wagmi.ts b/src/wagmi.ts index 28892f6..20ab441 100644 --- a/src/wagmi.ts +++ b/src/wagmi.ts @@ -1,5 +1,5 @@ import { http, cookieStorage, createConfig, createStorage } from "wagmi"; -import { mainnet, optimism, sepolia, optimismSepolia } from "wagmi/chains"; +import { optimism, optimismSepolia } from "wagmi/chains"; import { coinbaseWallet, injected } from "wagmi/connectors"; export function getConfig() { @@ -15,8 +15,7 @@ export function getConfig() { }), ssr: true, transports: { - // [mainnet.id]: http(), - // [sepolia.id]: http(), + // [optimism.id]: http(), [optimismSepolia.id]: http(), }, });