diff --git a/apps/maestro/package.json b/apps/maestro/package.json index ffc2fa31a..7fe04a993 100644 --- a/apps/maestro/package.json +++ b/apps/maestro/package.json @@ -47,7 +47,7 @@ "@trpc/server": "^10.45.0", "@vercel/kv": "^1.0.1", "@vercel/postgres": "^0.5.1", - "@web3modal/wagmi": "^3.5.3", + "@web3modal/wagmi": "^3.5.5", "drizzle-orm": "^0.29.3", "lucide-react": "^0.265.0", "next": "^14.0.4", @@ -69,7 +69,7 @@ "trpc-openapi": "^1.2.0", "unfetch": "^4.2.0", "viem": "1.21.4", - "wagmi": "1.4.7", + "wagmi": "1.4.13", "zod": "^3.22.4" }, "devDependencies": { diff --git a/apps/maestro/src/config/next-auth.ts b/apps/maestro/src/config/next-auth.ts index 809256b0a..8d3acc54d 100644 --- a/apps/maestro/src/config/next-auth.ts +++ b/apps/maestro/src/config/next-auth.ts @@ -1,17 +1,21 @@ +import { Maybe } from "@axelarjs/utils"; import type { NextAuthOptions } from "next-auth"; import CredentialsProvider from "next-auth/providers/credentials"; import { kv } from "@vercel/kv"; import { getAddress, verifyMessage } from "viem"; +import db from "~/lib/drizzle/client"; import { getSignInMessage } from "~/server/routers/auth/createSignInMessage"; import MaestroKVClient from "~/services/db/kv"; +import MaestroPostgresClient from "~/services/db/postgres/MaestroPostgresClient"; export type Web3Session = { address: `0x${string}`; }; const kvClient = new MaestroKVClient(kv); +const pgClient = new MaestroPostgresClient(db); // augments the default session type declare module "next-auth" { @@ -35,7 +39,7 @@ export const NEXT_AUTH_OPTIONS: NextAuthOptions = { placeholder: "0x0", }, }, - async authorize(credentials) { + async authorize(credentials, req) { if ( !credentials?.address || !getAddress(credentials?.address) || @@ -53,6 +57,25 @@ export const NEXT_AUTH_OPTIONS: NextAuthOptions = { ]); if (accountNonce === null || accountStatus === "disabled") { + if (accountStatus === "disabled") { + const { ip, userAgent } = Maybe.of(req.headers).mapOr( + { ip: "", userAgent: "" }, + (headers) => ({ + ip: headers["x-real-ip"], + userAgent: headers["user-agent"], + }) + ); + + // record unauthorized access attempt event to audit logs + await pgClient.recordAuditLogEvent({ + kind: "unauthorized_access_attempt", + payload: { + ip, + userAgent, + accountAddress: address, + }, + }); + } return null; } diff --git a/apps/maestro/src/lib/drizzle/migrations/0002_minor_weapon_omega.sql b/apps/maestro/src/lib/drizzle/migrations/0002_minor_weapon_omega.sql new file mode 100644 index 000000000..dc78625bf --- /dev/null +++ b/apps/maestro/src/lib/drizzle/migrations/0002_minor_weapon_omega.sql @@ -0,0 +1,12 @@ +DO $$ BEGIN + CREATE TYPE "audit_log_event_kind" AS ENUM('unauthorized_access_attempt'); +EXCEPTION + WHEN duplicate_object THEN null; +END $$; +--> statement-breakpoint +CREATE TABLE IF NOT EXISTS "audit_logs" ( + "id" varchar(66) PRIMARY KEY NOT NULL, + "event_kind" "audit_log_event_kind" NOT NULL, + "payload" varchar(2048) NOT NULL, + "timestamp" timestamp DEFAULT now() NOT NULL +); diff --git a/apps/maestro/src/lib/drizzle/migrations/meta/0002_snapshot.json b/apps/maestro/src/lib/drizzle/migrations/meta/0002_snapshot.json new file mode 100644 index 000000000..039ea64b1 --- /dev/null +++ b/apps/maestro/src/lib/drizzle/migrations/meta/0002_snapshot.json @@ -0,0 +1,250 @@ +{ + "id": "10d8d21d-e5ff-4162-924e-e03bcc3dd483", + "prevId": "f3f3d7de-b427-49a6-a10a-0ce3d4988068", + "version": "5", + "dialect": "pg", + "tables": { + "audit_logs": { + "name": "audit_logs", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "varchar(66)", + "primaryKey": true, + "notNull": true + }, + "event_kind": { + "name": "event_kind", + "type": "audit_log_event_kind", + "primaryKey": false, + "notNull": true + }, + "payload": { + "name": "payload", + "type": "varchar(2048)", + "primaryKey": false, + "notNull": true + }, + "timestamp": { + "name": "timestamp", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "interchain_tokens": { + "name": "interchain_tokens", + "schema": "", + "columns": { + "token_id": { + "name": "token_id", + "type": "varchar(66)", + "primaryKey": true, + "notNull": true + }, + "token_address": { + "name": "token_address", + "type": "varchar(42)", + "primaryKey": false, + "notNull": true + }, + "axelar_chain_id": { + "name": "axelar_chain_id", + "type": "varchar(66)", + "primaryKey": false, + "notNull": true + }, + "token_name": { + "name": "token_name", + "type": "varchar(100)", + "primaryKey": false, + "notNull": true + }, + "token_symbol": { + "name": "token_symbol", + "type": "varchar(100)", + "primaryKey": false, + "notNull": true + }, + "token_decimals": { + "name": "token_decimals", + "type": "smallint", + "primaryKey": false, + "notNull": true + }, + "deployment_message_id": { + "name": "deployment_message_id", + "type": "varchar(71)", + "primaryKey": false, + "notNull": true + }, + "deployer_address": { + "name": "deployer_address", + "type": "varchar(42)", + "primaryKey": false, + "notNull": true + }, + "token_manager_address": { + "name": "token_manager_address", + "type": "varchar(42)", + "primaryKey": false, + "notNull": true + }, + "original_minter_address": { + "name": "original_minter_address", + "type": "varchar(42)", + "primaryKey": false, + "notNull": false + }, + "kind": { + "name": "kind", + "type": "token_kind", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "default": "now()" + }, + "salt": { + "name": "salt", + "type": "varchar(66)", + "primaryKey": false, + "notNull": true, + "default": "'0x'" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "remote_interchain_tokens": { + "name": "remote_interchain_tokens", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "varchar(128)", + "primaryKey": true, + "notNull": true + }, + "token_id": { + "name": "token_id", + "type": "varchar(66)", + "primaryKey": false, + "notNull": true + }, + "axelar_chain_id": { + "name": "axelar_chain_id", + "type": "varchar(66)", + "primaryKey": false, + "notNull": true + }, + "token_address": { + "name": "token_address", + "type": "varchar(42)", + "primaryKey": false, + "notNull": true + }, + "token_manager_address": { + "name": "token_manager_address", + "type": "varchar(42)", + "primaryKey": false, + "notNull": false + }, + "deployment_message_id": { + "name": "deployment_message_id", + "type": "varchar(71)", + "primaryKey": false, + "notNull": true + }, + "deployment_status": { + "name": "deployment_status", + "type": "deployment_status", + "primaryKey": false, + "notNull": false, + "default": "'pending'" + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "remote_interchain_tokens_token_id_interchain_tokens_token_id_fk": { + "name": "remote_interchain_tokens_token_id_interchain_tokens_token_id_fk", + "tableFrom": "remote_interchain_tokens", + "tableTo": "interchain_tokens", + "columnsFrom": [ + "token_id" + ], + "columnsTo": [ + "token_id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + } + }, + "enums": { + "audit_log_event_kind": { + "name": "audit_log_event_kind", + "values": { + "unauthorized_access_attempt": "unauthorized_access_attempt" + } + }, + "token_kind": { + "name": "token_kind", + "values": { + "canonical": "canonical", + "interchain": "interchain", + "custom": "custom" + } + }, + "deployment_status": { + "name": "deployment_status", + "values": { + "confirmed": "confirmed", + "pending": "pending" + } + } + }, + "schemas": {}, + "_meta": { + "columns": {}, + "schemas": {}, + "tables": {} + } +} \ No newline at end of file diff --git a/apps/maestro/src/lib/drizzle/migrations/meta/_journal.json b/apps/maestro/src/lib/drizzle/migrations/meta/_journal.json index 0a320c1db..1f38afd62 100644 --- a/apps/maestro/src/lib/drizzle/migrations/meta/_journal.json +++ b/apps/maestro/src/lib/drizzle/migrations/meta/_journal.json @@ -15,6 +15,13 @@ "when": 1701957876399, "tag": "0001_confused_bug", "breakpoints": true + }, + { + "idx": 2, + "version": "5", + "when": 1704908069686, + "tag": "0002_minor_weapon_omega", + "breakpoints": true } ] -} +} \ No newline at end of file diff --git a/apps/maestro/src/lib/drizzle/schema/auditLogs.ts b/apps/maestro/src/lib/drizzle/schema/auditLogs.ts new file mode 100644 index 000000000..920e4c641 --- /dev/null +++ b/apps/maestro/src/lib/drizzle/schema/auditLogs.ts @@ -0,0 +1,55 @@ +import type { InferInsertModel, InferSelectModel } from "drizzle-orm"; +import { pgEnum, pgTable, timestamp, uuid, varchar } from "drizzle-orm/pg-core"; +import { createInsertSchema, createSelectSchema } from "drizzle-zod"; +import { Address } from "viem"; + +export const AUDIT_EVENT_KINDS = [ + "unauthorized_access_attempt", + // add more event kinds here +] as const; + +export type AuditLogEventKind = (typeof AUDIT_EVENT_KINDS)[number]; + +export type EVENT_KIND_MAP = { + unauthorized_access_attempt: { + accountAddress: Address; + ip: string; + userAgent: string; + }; + // add more event types here +}; + +export type AuditLogEvent = { + kind: K; + payload: EVENT_KIND_MAP[K]; +}; + +export const auditLogEventKind = pgEnum( + "audit_log_event_kind", + AUDIT_EVENT_KINDS +); + +/** + * Audit Logs Table + * + * This table is used to store audit logs. + */ +export const auditLogs = pgTable("audit_logs", { + id: uuid("id").primaryKey().defaultRandom(), + eventKind: auditLogEventKind("event_kind").notNull(), + payload: varchar("payload", { length: 2048 }).notNull(), + timestamp: timestamp("timestamp").notNull().defaultNow(), +}); + +/** + * CRUD Schemas + * + * These schemas are used to validate the input and output of CRUD operations. + */ +export const auditLogsZodSchemas = { + insert: createInsertSchema(auditLogs), + select: createSelectSchema(auditLogs), +}; + +export type AuditLog = InferSelectModel; +export type NewAuditLog = InferInsertModel; diff --git a/apps/maestro/src/lib/drizzle/schema/common.ts b/apps/maestro/src/lib/drizzle/schema/common.ts index 5d985035e..4ca6abdc6 100644 --- a/apps/maestro/src/lib/drizzle/schema/common.ts +++ b/apps/maestro/src/lib/drizzle/schema/common.ts @@ -19,6 +19,13 @@ export const tokenAddress = varchar("token_address", { length: ADDRESS_LENGTH, }); +/** + * This is the address of the account. Format: `0x${string}` + */ +export const accountAddress = varchar("account_address", { + length: ADDRESS_LENGTH, +}); + /** * This is the address of the token manager contract. Format: `0x${string}` */ diff --git a/apps/maestro/src/lib/drizzle/schema/index.ts b/apps/maestro/src/lib/drizzle/schema/index.ts index 25b92a49d..eb8890f35 100644 --- a/apps/maestro/src/lib/drizzle/schema/index.ts +++ b/apps/maestro/src/lib/drizzle/schema/index.ts @@ -8,6 +8,7 @@ export * from "./utils"; export * from "./interchainTokens"; export * from "./remoteInterchainTokens"; +export * from "./auditLogs"; /** * Table Relations diff --git a/apps/maestro/src/middleware.ts b/apps/maestro/src/middleware.ts new file mode 100644 index 000000000..6a1597aba --- /dev/null +++ b/apps/maestro/src/middleware.ts @@ -0,0 +1,65 @@ +import { NextResponse, type NextRequest } from "next/server"; + +// Limit middleware pathname config +export const config = { + matcher: [ + /* + * Match all request paths except for the ones starting with: + * - api (API routes) + * - _next/static (static files) + * - _next/image (image optimization files) + * - favicon.ico (favicon file) + */ + "/((?!api|logos|_next/static|_next/image|favicon.ico).*)", + ], +}; + +export function middleware(req: NextRequest) { + // Extract country + const country = req.geo?.country ?? "US"; + + const isBlocked = BLOCKED_COUNTRIES.includes(country); + + if (!isBlocked && req.nextUrl.pathname === "/restricted") { + req.nextUrl.pathname = "/"; + return NextResponse.redirect(req.nextUrl); + } + + if (isBlocked) { + console.info("unauthorized_access_attempt:", { + ...(req.geo ?? {}), + ip: req.ip, + userAgent: req.headers.get("user-agent"), + }); + + req.nextUrl.pathname = "/restricted"; + } + + // Rewrite to URL + return NextResponse.rewrite(req.nextUrl); +} + +/** + * Blocked sanctioned or embargoed countries + * based on https://orpa.princeton.edu/export-controls/sanctioned-countries + */ +const BLOCKED_COUNTRIES: string[] = [ + "CU", // Cuba + "IR", // Iran + "KP", // North Korea + "RU", // Russia + "SY", // Syria + "UA-CR", // Crimea (Ukraine) + "UA-DN", // Donetsk (Ukraine) + "UA-LU", // Luhansk (Ukraine) + "BA", // Balkans + "BY", // Belarus + "MM", // Burma (Myanmar) + "CD", // Congo, Dem. Rep. of + "ET", // Ethiopia + "HK", // Hong Kong + "SD", // Sudan + "VE", // Venezuela + "YE", // Yemen + "ZW", // Zimbabwe, +]; diff --git a/apps/maestro/src/pages/restricted.tsx b/apps/maestro/src/pages/restricted.tsx new file mode 100644 index 000000000..ca4c2fed8 --- /dev/null +++ b/apps/maestro/src/pages/restricted.tsx @@ -0,0 +1,18 @@ +import { AlertTriangleIcon, Card } from "@axelarjs/ui"; +import type { FC } from "react"; + +const RestrictedPage: FC = () => ( +
+ + + + + Your access is restricted + + Access from this IP address or location is restricted. + + +
+); + +export default RestrictedPage; diff --git a/apps/maestro/src/services/db/postgres/MaestroPostgresClient.ts b/apps/maestro/src/services/db/postgres/MaestroPostgresClient.ts index 2b7f75906..828807ad9 100644 --- a/apps/maestro/src/services/db/postgres/MaestroPostgresClient.ts +++ b/apps/maestro/src/services/db/postgres/MaestroPostgresClient.ts @@ -4,6 +4,9 @@ import { z } from "zod"; import type { DBClient } from "~/lib/drizzle/client"; import { + AuditLogEvent, + AuditLogEventKind, + auditLogs, interchainTokens, interchainTokensZodSchemas, remoteInterchainTokens, @@ -146,4 +149,30 @@ export default class MaestroPostgresClient { return await query; } + + async recordAuditLogEvent( + event: AuditLogEvent + ) { + await this.db.insert(auditLogs).values({ + eventKind: event.kind, + payload: JSON.stringify(event.payload), + }); + } + + async getAuditLogs() { + const query = this.db.query.auditLogs.findMany({ + orderBy: ({ timestamp }, { desc }) => desc(timestamp), + }); + + return await query; + } + + async getAuditLogsByEventKind(eventKind: AuditLogEventKind) { + const query = this.db.query.auditLogs.findMany({ + where: (table, { eq }) => eq(table.eventKind, eventKind), + orderBy: ({ timestamp }, { desc }) => desc(timestamp), + }); + + return await query; + } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5b1448709..4273855d1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -115,8 +115,8 @@ importers: specifier: ^0.5.1 version: 0.5.1 '@web3modal/wagmi': - specifier: ^3.5.3 - version: 3.5.3(@types/react@18.2.21)(@wagmi/core@1.4.12)(typescript@5.3.3)(viem@1.21.4) + specifier: ^3.5.5 + version: 3.5.5(@types/react@18.2.21)(@wagmi/core@1.4.13)(typescript@5.3.3)(viem@1.21.4) drizzle-orm: specifier: ^0.29.3 version: 0.29.3(@types/react@18.2.21)(@vercel/postgres@0.5.1)(pg@8.11.3)(react@18.2.0) @@ -181,8 +181,8 @@ importers: specifier: 1.21.4 version: 1.21.4(typescript@5.3.3)(zod@3.22.4) wagmi: - specifier: 1.4.7 - version: 1.4.7(@types/react@18.2.21)(@vercel/kv@1.0.1)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)(viem@1.21.4)(zod@3.22.4) + specifier: 1.4.13 + version: 1.4.13(@types/react@18.2.21)(@vercel/kv@1.0.1)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)(viem@1.21.4)(zod@3.22.4) zod: specifier: ^3.22.4 version: 3.22.4 @@ -243,7 +243,7 @@ importers: version: 0.34.6(vitest@0.34.6) '@wagmi/cli': specifier: ^1.5.2 - version: 1.5.2(@wagmi/core@1.4.12)(typescript@5.3.3)(wagmi@1.4.7) + version: 1.5.2(@wagmi/core@1.4.13)(typescript@5.3.3)(wagmi@1.4.13) autoprefixer: specifier: ^10.4.16 version: 10.4.16(postcss@8.4.32) @@ -4526,9 +4526,6 @@ packages: resolution: {integrity: sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==} dev: true - /@ledgerhq/connect-kit-loader@1.1.8: - resolution: {integrity: sha512-mDJsOucVW8m3Lk2fdQst+P74SgiKebvq1iBk4sXLbADQOwhL9bWGaArvO+tW7jPJZwEfSPWBdHcHoYi11XAwZw==} - /@lit-labs/ssr-dom-shim@1.1.2: resolution: {integrity: sha512-jnOD+/+dSrfTWYfSXBXlo5l5f0q1UuJo3tkbMDCYA2lKUYq79jaxqtGEvnRoh049nt1vdo1+45RinipU6FGY2g==} @@ -5919,18 +5916,6 @@ packages: resolution: {integrity: sha512-0xd7qez0AQ+MbHatZTlI1gu5vkG8r7MYRUJAHPAHJBmGLs16zpkrpAVLvjQKQOqaXPDUBwOiJzNc00znHSCVBw==} dev: true - /@safe-global/safe-apps-provider@0.17.1(typescript@5.3.3)(zod@3.22.4): - resolution: {integrity: sha512-lYfRqrbbK1aKU1/UGkYWc/X7PgySYcumXKc5FB2uuwAs2Ghj8uETuW5BrwPqyjBknRxutFbTv+gth/JzjxAhdQ==} - dependencies: - '@safe-global/safe-apps-sdk': 8.0.0(typescript@5.3.3)(zod@3.22.4) - events: 3.3.0 - transitivePeerDependencies: - - bufferutil - - encoding - - typescript - - utf-8-validate - - zod - /@safe-global/safe-apps-provider@0.18.1(typescript@5.3.3)(zod@3.22.4): resolution: {integrity: sha512-V4a05A3EgJcriqtDoJklDz1BOinWhC6P0hjUSxshA4KOZM7rGPCTto/usXs09zr1vvL28evl/NldSTv97j2bmg==} dependencies: @@ -5943,18 +5928,6 @@ packages: - utf-8-validate - zod - /@safe-global/safe-apps-sdk@8.0.0(typescript@5.3.3)(zod@3.22.4): - resolution: {integrity: sha512-gYw0ki/EAuV1oSyMxpqandHjnthZjYYy+YWpTAzf8BqfXM3ItcZLpjxfg+3+mXW8HIO+3jw6T9iiqEXsqHaMMw==} - dependencies: - '@safe-global/safe-gateway-typescript-sdk': 3.10.0 - viem: 1.21.4(typescript@5.3.3)(zod@3.22.4) - transitivePeerDependencies: - - bufferutil - - encoding - - typescript - - utf-8-validate - - zod - /@safe-global/safe-apps-sdk@8.1.0(typescript@5.3.3)(zod@3.22.4): resolution: {integrity: sha512-XJbEPuaVc7b9n23MqlF6c+ToYIS3f7P2Sel8f3cSBQ9WORE4xrSuvhMpK9fDSFqJ7by/brc+rmJR/5HViRr0/w==} dependencies: @@ -8743,7 +8716,7 @@ packages: requiresBuild: true dev: false - /@wagmi/cli@1.5.2(@wagmi/core@1.4.12)(typescript@5.3.3)(wagmi@1.4.7): + /@wagmi/cli@1.5.2(@wagmi/core@1.4.13)(typescript@5.3.3)(wagmi@1.4.13): resolution: {integrity: sha512-UfLMYhW6mQBCjR8A5s01Chf9GpHzdpcuuBuzJ36QGXcMSJAxylz5ImVZWfCRV0ct1UruydjKVSW1QSI6azNxRQ==} engines: {node: '>=14'} hasBin: true @@ -8759,7 +8732,7 @@ packages: wagmi: optional: true dependencies: - '@wagmi/core': 1.4.12(@types/react@18.2.21)(@vercel/kv@1.0.1)(react@18.2.0)(typescript@5.3.3)(viem@1.21.4)(zod@3.22.4) + '@wagmi/core': 1.4.13(@types/react@18.2.21)(@vercel/kv@1.0.1)(react@18.2.0)(typescript@5.3.3)(viem@1.21.4)(zod@3.22.4) abitype: 0.8.7(typescript@5.3.3)(zod@3.22.4) abort-controller: 3.0.0 bundle-require: 3.1.2(esbuild@0.16.17) @@ -8782,15 +8755,15 @@ packages: prettier: 2.8.8 typescript: 5.3.3 viem: 1.21.4(typescript@5.3.3)(zod@3.22.4) - wagmi: 1.4.7(@types/react@18.2.21)(@vercel/kv@1.0.1)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)(viem@1.21.4)(zod@3.22.4) + wagmi: 1.4.13(@types/react@18.2.21)(@vercel/kv@1.0.1)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)(viem@1.21.4)(zod@3.22.4) zod: 3.22.4 transitivePeerDependencies: - bufferutil - utf-8-validate dev: true - /@wagmi/connectors@3.1.10(@types/react@18.2.21)(@vercel/kv@1.0.1)(react@18.2.0)(typescript@5.3.3)(viem@1.21.4)(zod@3.22.4): - resolution: {integrity: sha512-ZLJC1QaeiZarkF07Cr9mOlVjPO1Lf5TBx+JKBms2y5fUIXlKrxCfQgO/gDCureboI+Us2X3IRI659+XacSGpbA==} + /@wagmi/connectors@3.1.11(@types/react@18.2.21)(@vercel/kv@1.0.1)(react@18.2.0)(typescript@5.3.3)(viem@1.21.4)(zod@3.22.4): + resolution: {integrity: sha512-wzxp9f9PtSUFjDUP/QDjc1t7HON4D8wrVKsw35ejdO8hToDpx1gU9lwH/47Zo/1zExGezQc392sjoHSszYd7OA==} peerDependencies: typescript: '>=5.0.4' viem: '>=0.3.35' @@ -8801,92 +8774,14 @@ packages: '@coinbase/wallet-sdk': 3.7.1 '@safe-global/safe-apps-provider': 0.18.1(typescript@5.3.3)(zod@3.22.4) '@safe-global/safe-apps-sdk': 8.1.0(typescript@5.3.3)(zod@3.22.4) - '@walletconnect/ethereum-provider': 2.10.6(@types/react@18.2.21)(@vercel/kv@1.0.1)(react@18.2.0) + '@walletconnect/ethereum-provider': 2.11.0(@types/react@18.2.21)(@vercel/kv@1.0.1)(react@18.2.0) '@walletconnect/legacy-provider': 2.0.0 '@walletconnect/modal': 2.6.2(@types/react@18.2.21)(react@18.2.0) - '@walletconnect/utils': 2.10.2(@vercel/kv@1.0.1) - abitype: 0.8.7(typescript@5.3.3)(zod@3.22.4) - eventemitter3: 4.0.7 - typescript: 5.3.3 - viem: 1.21.4(typescript@5.3.3)(zod@3.22.4) - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@netlify/blobs' - - '@planetscale/database' - - '@react-native-async-storage/async-storage' - - '@types/react' - - '@upstash/redis' - - '@vercel/kv' - - bufferutil - - encoding - - react - - supports-color - - utf-8-validate - - zod - - /@wagmi/connectors@3.1.5(@types/react@18.2.21)(@vercel/kv@1.0.1)(react@18.2.0)(typescript@5.3.3)(viem@1.21.4)(zod@3.22.4): - resolution: {integrity: sha512-aE4rWZbivqWa9HqjiLDPtwROH2b1Az+lBVMeZ3o/aFxGNGNEkdrSAMOUG15/UFy3VnN6HqGOtTobOBZ10JhfNQ==} - peerDependencies: - typescript: '>=5.0.4' - viem: '>=0.3.35' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@coinbase/wallet-sdk': 3.7.1 - '@ledgerhq/connect-kit-loader': 1.1.8 - '@safe-global/safe-apps-provider': 0.17.1(typescript@5.3.3)(zod@3.22.4) - '@safe-global/safe-apps-sdk': 8.1.0(typescript@5.3.3)(zod@3.22.4) - '@walletconnect/ethereum-provider': 2.10.2(@vercel/kv@1.0.1)(@walletconnect/modal@2.6.2) - '@walletconnect/legacy-provider': 2.0.0 - '@walletconnect/modal': 2.6.2(@types/react@18.2.21)(react@18.2.0) - '@walletconnect/utils': 2.10.2(@vercel/kv@1.0.1) - abitype: 0.8.7(typescript@5.3.3)(zod@3.22.4) - eventemitter3: 4.0.7 - typescript: 5.3.3 - viem: 1.21.4(typescript@5.3.3)(zod@3.22.4) - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@netlify/blobs' - - '@planetscale/database' - - '@react-native-async-storage/async-storage' - - '@types/react' - - '@upstash/redis' - - '@vercel/kv' - - bufferutil - - encoding - - react - - supports-color - - utf-8-validate - - zod - - /@wagmi/core@1.4.12(@types/react@18.2.21)(@vercel/kv@1.0.1)(react@18.2.0)(typescript@5.3.3)(viem@1.21.4)(zod@3.22.4): - resolution: {integrity: sha512-bLcYmmGgjtl3jAGo8X3Sm6oUwsdjbVxFMu9SWnwHdE4S9JdYeWM57dEhQgq8SYul2yQ7yY2/gimBf1Or0Ky3dQ==} - peerDependencies: - typescript: '>=5.0.4' - viem: '>=0.3.35' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@wagmi/connectors': 3.1.10(@types/react@18.2.21)(@vercel/kv@1.0.1)(react@18.2.0)(typescript@5.3.3)(viem@1.21.4)(zod@3.22.4) + '@walletconnect/utils': 2.11.0(@vercel/kv@1.0.1) abitype: 0.8.7(typescript@5.3.3)(zod@3.22.4) eventemitter3: 4.0.7 typescript: 5.3.3 viem: 1.21.4(typescript@5.3.3)(zod@3.22.4) - zustand: 4.4.1(@types/react@18.2.21)(react@18.2.0) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -8903,14 +8798,13 @@ packages: - '@vercel/kv' - bufferutil - encoding - - immer - react - supports-color - utf-8-validate - zod - /@wagmi/core@1.4.7(@types/react@18.2.21)(@vercel/kv@1.0.1)(react@18.2.0)(typescript@5.3.3)(viem@1.21.4)(zod@3.22.4): - resolution: {integrity: sha512-PiOIGni8ArQoPmuDylHX38zMt2nPnTYRIluIqiduKyGCM61X/tf10a0rafUMOOphDPudZu1TacNDhCSeoh/LEA==} + /@wagmi/core@1.4.13(@types/react@18.2.21)(@vercel/kv@1.0.1)(react@18.2.0)(typescript@5.3.3)(viem@1.21.4)(zod@3.22.4): + resolution: {integrity: sha512-ytMCvXbBOgfDu9Qw67279wq/jNEe7EZLjLyekX7ROnvHRADqFr3lwZI6ih41UmtRZAmXAx8Ghyuqy154EjB5mQ==} peerDependencies: typescript: '>=5.0.4' viem: '>=0.3.35' @@ -8918,7 +8812,7 @@ packages: typescript: optional: true dependencies: - '@wagmi/connectors': 3.1.5(@types/react@18.2.21)(@vercel/kv@1.0.1)(react@18.2.0)(typescript@5.3.3)(viem@1.21.4)(zod@3.22.4) + '@wagmi/connectors': 3.1.11(@types/react@18.2.21)(@vercel/kv@1.0.1)(react@18.2.0)(typescript@5.3.3)(viem@1.21.4)(zod@3.22.4) abitype: 0.8.7(typescript@5.3.3)(zod@3.22.4) eventemitter3: 4.0.7 typescript: 5.3.3 @@ -8946,44 +8840,8 @@ packages: - utf-8-validate - zod - /@walletconnect/core@2.10.2(@vercel/kv@1.0.1): - resolution: {integrity: sha512-JQz/xp3SLEpTeRQctdck2ugSBVEpMxoSE+lFi2voJkZop1hv6P+uqr6E4PzjFluAjeAnKlT1xvra0aFWjPWVcw==} - dependencies: - '@walletconnect/heartbeat': 1.2.1 - '@walletconnect/jsonrpc-provider': 1.0.13 - '@walletconnect/jsonrpc-types': 1.0.3 - '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/jsonrpc-ws-connection': 1.0.13 - '@walletconnect/keyvaluestorage': 1.1.1(@vercel/kv@1.0.1) - '@walletconnect/logger': 2.0.1 - '@walletconnect/relay-api': 1.0.9 - '@walletconnect/relay-auth': 1.0.4 - '@walletconnect/safe-json': 1.0.2 - '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.10.2(@vercel/kv@1.0.1) - '@walletconnect/utils': 2.10.2(@vercel/kv@1.0.1) - events: 3.3.0 - lodash.isequal: 4.5.0 - uint8arrays: 3.1.1 - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@netlify/blobs' - - '@planetscale/database' - - '@react-native-async-storage/async-storage' - - '@upstash/redis' - - '@vercel/kv' - - bufferutil - - supports-color - - utf-8-validate - - /@walletconnect/core@2.10.6(@vercel/kv@1.0.1): - resolution: {integrity: sha512-Z4vh4ZdfcoQjgPEOxeuF9HUZCVLtV3MgRbS/awLIj/omDrFnOwlBhxi5Syr4Y8muVGC0ocRetQYHae0/gX5crQ==} + /@walletconnect/core@2.11.0(@vercel/kv@1.0.1): + resolution: {integrity: sha512-2Tjp5BCevI7dbmqo/OrCjX4tqgMqwJNQLlQAlphqPfvwlF9+tIu6pGcVbSN3U9zyXzWIZCeleqEaWUeSeET4Ew==} dependencies: '@walletconnect/heartbeat': 1.2.1 '@walletconnect/jsonrpc-provider': 1.0.13 @@ -8996,9 +8854,10 @@ packages: '@walletconnect/relay-auth': 1.0.4 '@walletconnect/safe-json': 1.0.2 '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.10.6(@vercel/kv@1.0.1) - '@walletconnect/utils': 2.10.6(@vercel/kv@1.0.1) + '@walletconnect/types': 2.11.0(@vercel/kv@1.0.1) + '@walletconnect/utils': 2.11.0(@vercel/kv@1.0.1) events: 3.3.0 + isomorphic-unfetch: 3.1.0 lodash.isequal: 4.5.0 uint8arrays: 3.1.1 transitivePeerDependencies: @@ -9015,6 +8874,7 @@ packages: - '@upstash/redis' - '@vercel/kv' - bufferutil + - encoding - supports-color - utf-8-validate @@ -9040,54 +8900,18 @@ packages: dependencies: tslib: 1.14.1 - /@walletconnect/ethereum-provider@2.10.2(@vercel/kv@1.0.1)(@walletconnect/modal@2.6.2): - resolution: {integrity: sha512-QMYFZ6+rVq2CJLdIPdKK0j1Qm66UA27oQU5V2SrL8EVwl7wFfm0Bq7fnL+qAWeDpn612dNeNErpk/ROa1zWlWg==} - peerDependencies: - '@walletconnect/modal': '>=2' - peerDependenciesMeta: - '@walletconnect/modal': - optional: true + /@walletconnect/ethereum-provider@2.11.0(@types/react@18.2.21)(@vercel/kv@1.0.1)(react@18.2.0): + resolution: {integrity: sha512-YrTeHVjuSuhlUw7SQ6xBJXDuJ6iAC+RwINm9nVhoKYJSHAy3EVSJZOofMKrnecL0iRMtD29nj57mxAInIBRuZA==} dependencies: '@walletconnect/jsonrpc-http-connection': 1.0.7 '@walletconnect/jsonrpc-provider': 1.0.13 '@walletconnect/jsonrpc-types': 1.0.3 '@walletconnect/jsonrpc-utils': 1.0.8 '@walletconnect/modal': 2.6.2(@types/react@18.2.21)(react@18.2.0) - '@walletconnect/sign-client': 2.10.2(@vercel/kv@1.0.1) - '@walletconnect/types': 2.10.2(@vercel/kv@1.0.1) - '@walletconnect/universal-provider': 2.10.2(@vercel/kv@1.0.1) - '@walletconnect/utils': 2.10.2(@vercel/kv@1.0.1) - events: 3.3.0 - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@netlify/blobs' - - '@planetscale/database' - - '@react-native-async-storage/async-storage' - - '@upstash/redis' - - '@vercel/kv' - - bufferutil - - encoding - - supports-color - - utf-8-validate - - /@walletconnect/ethereum-provider@2.10.6(@types/react@18.2.21)(@vercel/kv@1.0.1)(react@18.2.0): - resolution: {integrity: sha512-bBQ+yUfxLv8VxNttgNKY7nED35gSVayO/BnLHbNKvyV1gpvSCla5mWB9MsXuQs70MK0g+/qtgRVSrOtdSubaNQ==} - dependencies: - '@walletconnect/jsonrpc-http-connection': 1.0.7 - '@walletconnect/jsonrpc-provider': 1.0.13 - '@walletconnect/jsonrpc-types': 1.0.3 - '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/modal': 2.6.2(@types/react@18.2.21)(react@18.2.0) - '@walletconnect/sign-client': 2.10.6(@vercel/kv@1.0.1) - '@walletconnect/types': 2.10.6(@vercel/kv@1.0.1) - '@walletconnect/universal-provider': 2.10.6(@vercel/kv@1.0.1) - '@walletconnect/utils': 2.10.6(@vercel/kv@1.0.1) + '@walletconnect/sign-client': 2.11.0(@vercel/kv@1.0.1) + '@walletconnect/types': 2.11.0(@vercel/kv@1.0.1) + '@walletconnect/universal-provider': 2.11.0(@vercel/kv@1.0.1) + '@walletconnect/utils': 2.11.0(@vercel/kv@1.0.1) events: 3.3.0 transitivePeerDependencies: - '@azure/app-configuration' @@ -9152,18 +8976,6 @@ packages: '@walletconnect/jsonrpc-types': 1.0.3 tslib: 1.14.1 - /@walletconnect/jsonrpc-ws-connection@1.0.13: - resolution: {integrity: sha512-mfOM7uFH4lGtQxG+XklYuFBj6dwVvseTt5/ahOkkmpcAEgz2umuzu7fTR+h5EmjQBdrmYyEBOWADbeaFNxdySg==} - dependencies: - '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/safe-json': 1.0.2 - events: 3.3.0 - tslib: 1.14.1 - ws: 7.5.9 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - /@walletconnect/jsonrpc-ws-connection@1.0.14: resolution: {integrity: sha512-Jsl6fC55AYcbkNVkwNM6Jo+ufsuCQRqViOQ8ZBPH9pRREHH9welbBiszuTLqEJiQcO/6XfFDl6bzCJIkrEi8XA==} dependencies: @@ -9315,46 +9127,17 @@ packages: dependencies: tslib: 1.14.1 - /@walletconnect/sign-client@2.10.2(@vercel/kv@1.0.1): - resolution: {integrity: sha512-vviSLV3f92I0bReX+OLr1HmbH0uIzYEQQFd1MzIfDk9PkfFT/LLAHhUnDaIAMkIdippqDcJia+5QEtT4JihL3Q==} + /@walletconnect/sign-client@2.11.0(@vercel/kv@1.0.1): + resolution: {integrity: sha512-H2ukscibBS+6WrzQWh+WyVBqO5z4F5et12JcwobdwgHnJSlqIoZxqnUYYWNCI5rUR5UKsKWaUyto4AE9N5dw4Q==} dependencies: - '@walletconnect/core': 2.10.2(@vercel/kv@1.0.1) + '@walletconnect/core': 2.11.0(@vercel/kv@1.0.1) '@walletconnect/events': 1.0.1 '@walletconnect/heartbeat': 1.2.1 '@walletconnect/jsonrpc-utils': 1.0.8 '@walletconnect/logger': 2.0.1 '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.10.2(@vercel/kv@1.0.1) - '@walletconnect/utils': 2.10.2(@vercel/kv@1.0.1) - events: 3.3.0 - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@netlify/blobs' - - '@planetscale/database' - - '@react-native-async-storage/async-storage' - - '@upstash/redis' - - '@vercel/kv' - - bufferutil - - supports-color - - utf-8-validate - - /@walletconnect/sign-client@2.10.6(@vercel/kv@1.0.1): - resolution: {integrity: sha512-EvUWjaZBQu2yKnH5/5F2qzbuiIuUN9ZgrNKgvXkw5z1Dq5RJCks0S9/MFlKH/ZSGqXnLl7uAzBXtoX4sMgbCMA==} - dependencies: - '@walletconnect/core': 2.10.6(@vercel/kv@1.0.1) - '@walletconnect/events': 1.0.1 - '@walletconnect/heartbeat': 1.2.1 - '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/logger': 2.0.1 - '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.10.6(@vercel/kv@1.0.1) - '@walletconnect/utils': 2.10.6(@vercel/kv@1.0.1) + '@walletconnect/types': 2.11.0(@vercel/kv@1.0.1) + '@walletconnect/utils': 2.11.0(@vercel/kv@1.0.1) events: 3.3.0 transitivePeerDependencies: - '@azure/app-configuration' @@ -9370,6 +9153,7 @@ packages: - '@upstash/redis' - '@vercel/kv' - bufferutil + - encoding - supports-color - utf-8-validate @@ -9378,8 +9162,8 @@ packages: dependencies: tslib: 1.14.1 - /@walletconnect/types@2.10.2(@vercel/kv@1.0.1): - resolution: {integrity: sha512-luNV+07Wdla4STi9AejseCQY31tzWKQ5a7C3zZZaRK/di+rFaAAb7YW04OP4klE7tw/mJRGPTlekZElmHxO8kQ==} + /@walletconnect/types@2.11.0(@vercel/kv@1.0.1): + resolution: {integrity: sha512-AB5b1lrEbCGHxqS2vqfCkIoODieH+ZAUp9rA1O2ftrhnqDJiJK983Df87JhYhECsQUBHHfALphA8ydER0q+9sw==} dependencies: '@walletconnect/events': 1.0.1 '@walletconnect/heartbeat': 1.2.1 @@ -9402,41 +9186,17 @@ packages: - '@vercel/kv' - supports-color - /@walletconnect/types@2.10.6(@vercel/kv@1.0.1): - resolution: {integrity: sha512-WgHfiTG1yakmxheaBRiXhUdEmgxwrvsAdOIWaMf/spvrzVKYh6sHI3oyEEky5qj5jjiMiyQBeB57QamzCotbcQ==} - dependencies: - '@walletconnect/events': 1.0.1 - '@walletconnect/heartbeat': 1.2.1 - '@walletconnect/jsonrpc-types': 1.0.3 - '@walletconnect/keyvaluestorage': 1.1.1(@vercel/kv@1.0.1) - '@walletconnect/logger': 2.0.1 - events: 3.3.0 - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@netlify/blobs' - - '@planetscale/database' - - '@react-native-async-storage/async-storage' - - '@upstash/redis' - - '@vercel/kv' - - supports-color - - /@walletconnect/universal-provider@2.10.2(@vercel/kv@1.0.1): - resolution: {integrity: sha512-wFgI0LbQ3D56sgaUMsgOHCM5m8WLxiC71BGuCKQfApgsbNMVKugYVy2zWHyUyi8sqTQHI+uSaVpDev4UHq9LEw==} + /@walletconnect/universal-provider@2.11.0(@vercel/kv@1.0.1): + resolution: {integrity: sha512-zgJv8jDvIMP4Qse/D9oIRXGdfoNqonsrjPZanQ/CHNe7oXGOBiQND2IIeX+tS0H7uNA0TPvctljCLiIN9nw4eA==} dependencies: '@walletconnect/jsonrpc-http-connection': 1.0.7 '@walletconnect/jsonrpc-provider': 1.0.13 '@walletconnect/jsonrpc-types': 1.0.3 '@walletconnect/jsonrpc-utils': 1.0.8 '@walletconnect/logger': 2.0.1 - '@walletconnect/sign-client': 2.10.2(@vercel/kv@1.0.1) - '@walletconnect/types': 2.10.2(@vercel/kv@1.0.1) - '@walletconnect/utils': 2.10.2(@vercel/kv@1.0.1) + '@walletconnect/sign-client': 2.11.0(@vercel/kv@1.0.1) + '@walletconnect/types': 2.11.0(@vercel/kv@1.0.1) + '@walletconnect/utils': 2.11.0(@vercel/kv@1.0.1) events: 3.3.0 transitivePeerDependencies: - '@azure/app-configuration' @@ -9456,70 +9216,8 @@ packages: - supports-color - utf-8-validate - /@walletconnect/universal-provider@2.10.6(@vercel/kv@1.0.1): - resolution: {integrity: sha512-CEivusqqoD31BhCTKp08DnrccfGjwD9MFjZs5BNRorDteRFE8zVm9LmP6DSiNJCw82ZajGlZThggLQ/BAATfwA==} - dependencies: - '@walletconnect/jsonrpc-http-connection': 1.0.7 - '@walletconnect/jsonrpc-provider': 1.0.13 - '@walletconnect/jsonrpc-types': 1.0.3 - '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/logger': 2.0.1 - '@walletconnect/sign-client': 2.10.6(@vercel/kv@1.0.1) - '@walletconnect/types': 2.10.6(@vercel/kv@1.0.1) - '@walletconnect/utils': 2.10.6(@vercel/kv@1.0.1) - events: 3.3.0 - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@netlify/blobs' - - '@planetscale/database' - - '@react-native-async-storage/async-storage' - - '@upstash/redis' - - '@vercel/kv' - - bufferutil - - encoding - - supports-color - - utf-8-validate - - /@walletconnect/utils@2.10.2(@vercel/kv@1.0.1): - resolution: {integrity: sha512-syxXRpc2yhSknMu3IfiBGobxOY7fLfLTJuw+ppKaeO6WUdZpIit3wfuGOcc0Ms3ZPFCrGfyGOoZsCvgdXtptRg==} - dependencies: - '@stablelib/chacha20poly1305': 1.0.1 - '@stablelib/hkdf': 1.0.1 - '@stablelib/random': 1.0.2 - '@stablelib/sha256': 1.0.1 - '@stablelib/x25519': 1.0.3 - '@walletconnect/relay-api': 1.0.9 - '@walletconnect/safe-json': 1.0.2 - '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.10.2(@vercel/kv@1.0.1) - '@walletconnect/window-getters': 1.0.1 - '@walletconnect/window-metadata': 1.0.1 - detect-browser: 5.3.0 - query-string: 7.1.3 - uint8arrays: 3.1.1 - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@netlify/blobs' - - '@planetscale/database' - - '@react-native-async-storage/async-storage' - - '@upstash/redis' - - '@vercel/kv' - - supports-color - - /@walletconnect/utils@2.10.6(@vercel/kv@1.0.1): - resolution: {integrity: sha512-oRsWWhN2+hi3aiDXrQEOfysz6FHQJGXLsNQPVt+WIBJplO6Szmdau9dbleD88u1iiT4GKPqE0R9FOYvvPm1H/w==} + /@walletconnect/utils@2.11.0(@vercel/kv@1.0.1): + resolution: {integrity: sha512-hxkHPlTlDQILHfIKXlmzgNJau/YcSBC3XHUSuZuKZbNEw3duFT6h6pm3HT/1+j1a22IG05WDsNBuTCRkwss+BQ==} dependencies: '@stablelib/chacha20poly1305': 1.0.1 '@stablelib/hkdf': 1.0.1 @@ -9529,7 +9227,7 @@ packages: '@walletconnect/relay-api': 1.0.9 '@walletconnect/safe-json': 1.0.2 '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.10.6(@vercel/kv@1.0.1) + '@walletconnect/types': 2.11.0(@vercel/kv@1.0.1) '@walletconnect/window-getters': 1.0.1 '@walletconnect/window-metadata': 1.0.1 detect-browser: 5.3.0 @@ -9561,79 +9259,79 @@ packages: '@walletconnect/window-getters': 1.0.1 tslib: 1.14.1 - /@web3modal/common@3.5.3: - resolution: {integrity: sha512-HQKaDHUU5k4gz7BBiCJRmgDnPCIIyAPwz21Z3UcrL3evDv24rlGOD8k8A3E40VxBKdIj5/TjgEUwlX2r+VKFvQ==} + /@web3modal/common@3.5.5: + resolution: {integrity: sha512-RSzq8cJshm4cgAcawksWy7tkVCkvORxm95Ee6Po9G1vSb4+WCJFhzvbQIW4AAEstSNszm76qIH8rZAtOAj2Lyw==} dependencies: dayjs: 1.11.10 dev: false - /@web3modal/core@3.5.3(@types/react@18.2.21)(react@18.2.0): - resolution: {integrity: sha512-wVJR/vnk6Xx1snnZE6rMCTrxxk8vUW4uH478yWa7BTWSGXsbz05tU7FAUXUSvngzbWTZF/GydSZ+JcuJCqwFkA==} + /@web3modal/core@3.5.5(@types/react@18.2.21)(react@18.2.0): + resolution: {integrity: sha512-UZ+pHRYE/cFBZMRzGshwMoJZMY/Mz3si0pb2Ob33MmI06Fa5BnO8bJpiTIfHY2V0+IJ+EPtW+PjeatfkXHxccA==} dependencies: - '@web3modal/common': 3.5.3 - '@web3modal/wallet': 3.5.3 + '@web3modal/common': 3.5.5 + '@web3modal/wallet': 3.5.5 valtio: 1.11.2(@types/react@18.2.21)(react@18.2.0) transitivePeerDependencies: - '@types/react' - react dev: false - /@web3modal/polyfills@3.5.3: - resolution: {integrity: sha512-k4s6XOXzJlJ6ScafgC+LOiCHkqBTIIKsNBkitoa3J4F0SAunrmSl8kH7Xul0OiT0NDn1AZ9/ATKM7O7vLk01dA==} + /@web3modal/polyfills@3.5.5: + resolution: {integrity: sha512-ovMPV12Z53eoIivecQ6VrtqSbmC3K1qES69nDVOGmZTZTwLcb+GSNfH2SRtn/l2tpCtkCNcu14rnbzZ1vEKcYQ==} dependencies: buffer: 6.0.3 dev: false - /@web3modal/scaffold-react@3.5.3(@types/react@18.2.21)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-leJZ+KRCcTEMwDCWLzd+/6gsjCt9ROu2hWPAirUWECwUDnJ4G890ID0TCdcErxz88AV1/U28+WUoKkAxwrfyaw==} + /@web3modal/scaffold-react@3.5.5(@types/react@18.2.21)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-tUcosVT9B/0yd7yF/cpd61/8y3KVPlM05bDefKBKqLWHbTdYxBVMBRkpw461pRM81j0H3xN2Gh0CgTykplgO2Q==} peerDependencies: react: '>=17' react-dom: '>=17' dependencies: - '@web3modal/scaffold': 3.5.3(@types/react@18.2.21)(react@18.2.0) + '@web3modal/scaffold': 3.5.5(@types/react@18.2.21)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) transitivePeerDependencies: - '@types/react' dev: false - /@web3modal/scaffold-utils@3.5.3(@types/react@18.2.21)(react@18.2.0): - resolution: {integrity: sha512-LP1oct94k0zINTk3DIFQiNbRlNFFYxH+KZu0PBW3UGdMWxY9GGppk/0G1f31Q7plyZO7autcv6ryyEPwO1v5Zw==} + /@web3modal/scaffold-utils@3.5.5(@types/react@18.2.21)(react@18.2.0): + resolution: {integrity: sha512-nKfTbfRp64n7SgFl9aGSBZvV9jlqRodmeWpKfghoqD347Gm16T0nXab/IMou5xqbPX9UImUiD/zSG/LMdsLxiQ==} dependencies: - '@web3modal/polyfills': 3.5.3 - '@web3modal/scaffold': 3.5.3(@types/react@18.2.21)(react@18.2.0) + '@web3modal/polyfills': 3.5.5 + '@web3modal/scaffold': 3.5.5(@types/react@18.2.21)(react@18.2.0) valtio: 1.11.2(@types/react@18.2.21)(react@18.2.0) transitivePeerDependencies: - '@types/react' - react dev: false - /@web3modal/scaffold-vue@3.5.3(@types/react@18.2.21)(react@18.2.0)(vue@3.3.7): - resolution: {integrity: sha512-TNKTB6EebXWEiLWwhSI2oppbVEoIlEt2G9cr+cXIkEjwE5j20h82KziAIeZb6/24ass7KgVChIJ+tBcwrh9lZQ==} + /@web3modal/scaffold-vue@3.5.5(@types/react@18.2.21)(react@18.2.0)(vue@3.3.7): + resolution: {integrity: sha512-KDDdY2dhxkeZPyyWlFIuY0jdF2tlTdLkR4SaHzm/ZR6oKU3+gr4MXY5BKUo9gk8C9chO0oTjYPBFdFMUo/ETkw==} peerDependencies: vue: '>=3' dependencies: - '@web3modal/scaffold': 3.5.3(@types/react@18.2.21)(react@18.2.0) + '@web3modal/scaffold': 3.5.5(@types/react@18.2.21)(react@18.2.0) vue: 3.3.7(typescript@5.3.3) transitivePeerDependencies: - '@types/react' - react dev: false - /@web3modal/scaffold@3.5.3(@types/react@18.2.21)(react@18.2.0): - resolution: {integrity: sha512-K+sUcG0fK9wHDMXSk1q3gSiHhRUEq/qzjtNXrLkzziuJAbm0I4isw820rQbCncrJ1cG0cXNGe2fS35aOOK1fvw==} + /@web3modal/scaffold@3.5.5(@types/react@18.2.21)(react@18.2.0): + resolution: {integrity: sha512-qFNSkv0zqazo2WXFqNdN1bIOnjhGv3eoD/HzEDgV1a6VIyLzLoFdXexDX+06ey1FAtMQRml/F2yVTZskln5taA==} dependencies: - '@web3modal/common': 3.5.3 - '@web3modal/core': 3.5.3(@types/react@18.2.21)(react@18.2.0) - '@web3modal/ui': 3.5.3 + '@web3modal/common': 3.5.5 + '@web3modal/core': 3.5.5(@types/react@18.2.21)(react@18.2.0) + '@web3modal/ui': 3.5.5 lit: 3.1.0 transitivePeerDependencies: - '@types/react' - react dev: false - /@web3modal/siwe@3.5.3(@types/react@18.2.21)(typescript@5.3.3): - resolution: {integrity: sha512-QMm/ypgkFXfNYOrBea9T55jvNI7LAfhKhK9G3xEIBsMDQiWKV5R++HP7kPPxD1UXs9y9bdWfCZ/sn3shQaYo2w==} + /@web3modal/siwe@3.5.5(@types/react@18.2.21)(typescript@5.3.3): + resolution: {integrity: sha512-8yNE7JX9+gDjozvN9cCUqcjBgsdxgQ9YzYyxujIfMrBOJ9v3HdbF/3whmsyaMzSv+NNtiDUCufBW30/4zz5Wnw==} requiresBuild: true peerDependenciesMeta: react: @@ -9643,8 +9341,8 @@ packages: vue: optional: true dependencies: - '@web3modal/core': 3.5.3(@types/react@18.2.21)(react@18.2.0) - '@web3modal/scaffold-utils': 3.5.3(@types/react@18.2.21)(react@18.2.0) + '@web3modal/core': 3.5.5(@types/react@18.2.21)(react@18.2.0) + '@web3modal/scaffold-utils': 3.5.5(@types/react@18.2.21)(react@18.2.0) optionalDependencies: react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -9655,18 +9353,18 @@ packages: dev: false optional: true - /@web3modal/ui@3.5.3: - resolution: {integrity: sha512-GHi4jJVDa2eTXcoyEUYMEUjMj00MU8oXKAu0YiAppbEzW/CPvr7r/3HR0tDYh2y8sh1650uSxMO7iC3EEoGKtA==} + /@web3modal/ui@3.5.5: + resolution: {integrity: sha512-rq8OzGzKDkuBlj26WFMk8IFdkb7Ryedn3aIDQupZsB55d3SUjDg8sBExsoR8I4NdtJjazGokthh4SkPOOO55nA==} dependencies: lit: 3.1.0 qrcode: 1.5.3 dev: false - /@web3modal/wagmi@3.5.3(@types/react@18.2.21)(@wagmi/core@1.4.12)(typescript@5.3.3)(viem@1.21.4): - resolution: {integrity: sha512-7E5qPHbPTE2kDMl/T9h39OizIcTgs4HXpGjN4H37clfDJc/RETRtscIgCTbIX3ufPOStGm4qFwjJhaHeH4x0NQ==} + /@web3modal/wagmi@3.5.5(@types/react@18.2.21)(@wagmi/core@1.4.13)(typescript@5.3.3)(viem@1.21.4): + resolution: {integrity: sha512-2ATkwY9Ond1j1K6NoJP+Lfkg4WmNvgX3Y4L57Efdq8nU5iYWhIRs2PZnvz2nrD3J44bkdaaNKLz7r1vBqtg4Gw==} peerDependencies: - '@wagmi/core': '>=1' - viem: '>=1' + '@wagmi/core': '>=1 <2' + viem: '>=1 <2' peerDependenciesMeta: '@web3modal/siwe': optional: true @@ -9677,15 +9375,15 @@ packages: vue: optional: true dependencies: - '@wagmi/core': 1.4.12(@types/react@18.2.21)(@vercel/kv@1.0.1)(react@18.2.0)(typescript@5.3.3)(viem@1.21.4)(zod@3.22.4) - '@web3modal/polyfills': 3.5.3 - '@web3modal/scaffold': 3.5.3(@types/react@18.2.21)(react@18.2.0) - '@web3modal/scaffold-react': 3.5.3(@types/react@18.2.21)(react-dom@18.2.0)(react@18.2.0) - '@web3modal/scaffold-utils': 3.5.3(@types/react@18.2.21)(react@18.2.0) - '@web3modal/scaffold-vue': 3.5.3(@types/react@18.2.21)(react@18.2.0)(vue@3.3.7) + '@wagmi/core': 1.4.13(@types/react@18.2.21)(@vercel/kv@1.0.1)(react@18.2.0)(typescript@5.3.3)(viem@1.21.4)(zod@3.22.4) + '@web3modal/polyfills': 3.5.5 + '@web3modal/scaffold': 3.5.5(@types/react@18.2.21)(react@18.2.0) + '@web3modal/scaffold-react': 3.5.5(@types/react@18.2.21)(react-dom@18.2.0)(react@18.2.0) + '@web3modal/scaffold-utils': 3.5.5(@types/react@18.2.21)(react@18.2.0) + '@web3modal/scaffold-vue': 3.5.5(@types/react@18.2.21)(react@18.2.0)(vue@3.3.7) viem: 1.21.4(typescript@5.3.3)(zod@3.22.4) optionalDependencies: - '@web3modal/siwe': 3.5.3(@types/react@18.2.21)(typescript@5.3.3) + '@web3modal/siwe': 3.5.5(@types/react@18.2.21)(typescript@5.3.3) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) vue: 3.3.7(typescript@5.3.3) @@ -9694,8 +9392,8 @@ packages: - typescript dev: false - /@web3modal/wallet@3.5.3: - resolution: {integrity: sha512-tzQlrBYbKIYrFw0JRH7iarZFUgCueWwMyDMmN7Pjy80dNQ8vcNjlLQM97yymVKun0QNBfZZrHLrDP4yd66dW3g==} + /@web3modal/wallet@3.5.5: + resolution: {integrity: sha512-RlbPtTxUQWe3HauHaj2hT3lIrmIfcWZwXG0tD2mM1sPbIrE9YaUkQwJnMyDPmOkFHsZkEZavulK4Sdxw7Mj3Lw==} requiresBuild: true dependencies: zod: 3.22.4 @@ -14293,6 +13991,14 @@ packages: resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} engines: {node: '>=0.10.0'} + /isomorphic-unfetch@3.1.0: + resolution: {integrity: sha512-geDJjpoZ8N0kWexiwkX8F9NkTsXhetLPVbZFQ+JTW239QNOwvB0gniuR1Wc6f0AMTn7/mFGyXvHTifrCp/GH8Q==} + dependencies: + node-fetch: 2.7.0 + unfetch: 4.2.0 + transitivePeerDependencies: + - encoding + /isomorphic-unfetch@4.0.2: resolution: {integrity: sha512-1Yd+CF/7al18/N2BDbsLBcp6RO3tucSW+jcLq24dqdX5MNbCNTw1z4BsGsp4zNmjr/Izm2cs/cEqZPp4kvWSCA==} dependencies: @@ -19793,7 +19499,6 @@ packages: /unfetch@4.2.0: resolution: {integrity: sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA==} - dev: false /unfetch@5.0.0: resolution: {integrity: sha512-3xM2c89siXg0nHvlmYsQ2zkLASvVMBisZm5lF3gFDqfF2xonNStDJyMpvaOBe0a1Edxmqrf2E0HBdmy9QyZaeg==} @@ -20346,8 +20051,8 @@ packages: typescript: 5.3.3 dev: false - /wagmi@1.4.7(@types/react@18.2.21)(@vercel/kv@1.0.1)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)(viem@1.21.4)(zod@3.22.4): - resolution: {integrity: sha512-/k8gA9S6RnwU6Qroxs630jAFvRIx+DSKpCP1owgAEGWc7D2bAJHljwRSCRTGENz48HyJ4V3R7KYV1yImxPvM3A==} + /wagmi@1.4.13(@types/react@18.2.21)(@vercel/kv@1.0.1)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)(viem@1.21.4)(zod@3.22.4): + resolution: {integrity: sha512-AScVYFjqNt1wMgL99Bob7MLdhoTZ3XKiOZL5HVBdy4W1sh7QodA3gQ8IsmTuUrQ7oQaTxjiXEhwg7sWNrPBvJA==} peerDependencies: react: '>=17.0.0' typescript: '>=5.0.4' @@ -20359,7 +20064,7 @@ packages: '@tanstack/query-sync-storage-persister': 4.36.1 '@tanstack/react-query': 4.36.1(react-dom@18.2.0)(react@18.2.0) '@tanstack/react-query-persist-client': 4.36.1(@tanstack/react-query@4.36.1) - '@wagmi/core': 1.4.7(@types/react@18.2.21)(@vercel/kv@1.0.1)(react@18.2.0)(typescript@5.3.3)(viem@1.21.4)(zod@3.22.4) + '@wagmi/core': 1.4.13(@types/react@18.2.21)(@vercel/kv@1.0.1)(react@18.2.0)(typescript@5.3.3)(viem@1.21.4)(zod@3.22.4) abitype: 0.8.7(typescript@5.3.3)(zod@3.22.4) react: 18.2.0 typescript: 5.3.3