Compare commits
15
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
40fa323294 | ||
|
|
2cebb420e6 | ||
|
|
e89ddb24f2 | ||
|
|
86f205e2aa | ||
|
|
6c277ae676 | ||
|
|
153651df35 | ||
|
|
8ba460b6fc | ||
|
|
1e61a9edfc | ||
|
|
d03e687aa9 | ||
|
|
e1c0dbe19e | ||
|
|
3e7df081d7 | ||
|
|
b6f189c220 | ||
|
|
fb4d0a26f1 | ||
|
|
bc345371ba | ||
|
|
7a8e4e5f86 |
@@ -68,7 +68,7 @@
|
||||
"ioredis": "^5.4.1",
|
||||
"ipaddr.js": "^2.2.0",
|
||||
"lucide-react": "0.468.0",
|
||||
"next": "15.1.3",
|
||||
"next": "15.1.4",
|
||||
"next-plausible": "^3.12.4",
|
||||
"next-themes": "^0.4.4",
|
||||
"nextjs-toploader": "^1.6.12",
|
||||
@@ -104,8 +104,8 @@
|
||||
"devDependencies": {
|
||||
"@chakra-ui/cli": "^2.4.1",
|
||||
"@chromatic-com/storybook": "3.2.2",
|
||||
"@next/bundle-analyzer": "15.1.0",
|
||||
"@next/eslint-plugin-next": "15.1.3",
|
||||
"@next/bundle-analyzer": "15.1.4",
|
||||
"@next/eslint-plugin-next": "15.1.4",
|
||||
"@playwright/test": "1.49.1",
|
||||
"@storybook/addon-essentials": "8.4.7",
|
||||
"@storybook/addon-interactions": "8.4.7",
|
||||
|
||||
@@ -16,6 +16,8 @@ type Option = { label: string; value: string };
|
||||
export function MultiNetworkSelector(props: {
|
||||
selectedChainIds: number[];
|
||||
onChange: (chainIds: number[]) => void;
|
||||
disableChainId?: boolean;
|
||||
className?: string;
|
||||
}) {
|
||||
const { allChains, idToChain } = useAllChainsData();
|
||||
|
||||
@@ -53,16 +55,24 @@ export function MultiNetworkSelector(props: {
|
||||
return (
|
||||
<div className="flex justify-between gap-4">
|
||||
<span className="flex grow gap-2 truncate text-left">
|
||||
<ChainIcon
|
||||
className="size-5"
|
||||
ipfsSrc={chain.icon?.url}
|
||||
loading="lazy"
|
||||
/>
|
||||
{cleanChainName(chain.name)}
|
||||
</span>
|
||||
<Badge variant="outline" className="gap-2">
|
||||
<span className="text-muted-foreground">Chain ID</span>
|
||||
{chain.chainId}
|
||||
</Badge>
|
||||
|
||||
{!props.disableChainId && (
|
||||
<Badge variant="outline" className="gap-2">
|
||||
<span className="text-muted-foreground">Chain ID</span>
|
||||
{chain.chainId}
|
||||
</Badge>
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
},
|
||||
[idToChain],
|
||||
[idToChain, props.disableChainId],
|
||||
);
|
||||
|
||||
return (
|
||||
@@ -79,6 +89,7 @@ export function MultiNetworkSelector(props: {
|
||||
disabled={allChains.length === 0}
|
||||
overrideSearchFn={searchFn}
|
||||
renderOption={renderOption}
|
||||
className={props.className}
|
||||
/>
|
||||
);
|
||||
}
|
||||
@@ -143,7 +154,7 @@ export function SingleNetworkSelector(props: {
|
||||
ipfsSrc={chain.icon?.url}
|
||||
loading="lazy"
|
||||
/>
|
||||
{chain.name}
|
||||
{cleanChainName(chain.name)}
|
||||
</span>
|
||||
|
||||
{!props.disableChainId && (
|
||||
@@ -168,6 +179,7 @@ export function SingleNetworkSelector(props: {
|
||||
onValueChange={(chainId) => {
|
||||
props.onChange(Number(chainId));
|
||||
}}
|
||||
closeOnSelect={true}
|
||||
placeholder={isLoadingChains ? "Loading Chains..." : "Select Chain"}
|
||||
overrideSearchFn={searchFn}
|
||||
renderOption={renderOption}
|
||||
|
||||
@@ -33,6 +33,7 @@ interface SelectWithSearchProps
|
||||
popoverContentClassName?: string;
|
||||
side?: "left" | "right" | "top" | "bottom";
|
||||
align?: "center" | "start" | "end";
|
||||
closeOnSelect?: boolean;
|
||||
}
|
||||
|
||||
export const SelectWithSearch = React.forwardRef<
|
||||
@@ -50,6 +51,7 @@ export const SelectWithSearch = React.forwardRef<
|
||||
overrideSearchFn,
|
||||
popoverContentClassName,
|
||||
searchPlaceholder,
|
||||
closeOnSelect,
|
||||
...props
|
||||
},
|
||||
ref,
|
||||
@@ -177,7 +179,12 @@ export const SelectWithSearch = React.forwardRef<
|
||||
key={option.value}
|
||||
role="option"
|
||||
aria-selected={isSelected}
|
||||
onClick={() => onValueChange(option.value)}
|
||||
onClick={() => {
|
||||
onValueChange(option.value);
|
||||
if (closeOnSelect) {
|
||||
setIsPopoverOpen(false);
|
||||
}
|
||||
}}
|
||||
variant="ghost"
|
||||
className="flex w-full cursor-pointer justify-start gap-3 rounded-sm px-3 py-2 text-left"
|
||||
ref={
|
||||
|
||||
@@ -10,7 +10,7 @@ import {
|
||||
import type { ResultItem } from "app/team/[team_slug]/(team)/~/engine/(instance)/[engineId]/metrics/components/StatusCodes";
|
||||
import type { EngineBackendWalletType } from "lib/engine";
|
||||
import { useState } from "react";
|
||||
import { useActiveAccount, useActiveWalletChain } from "thirdweb/react";
|
||||
import { useActiveAccount } from "thirdweb/react";
|
||||
import invariant from "tiny-invariant";
|
||||
import type { EngineStatus } from "../../../app/team/[team_slug]/(team)/~/engine/(instance)/[engineId]/overview/components/transactions-table";
|
||||
import { engineKeys } from "../cache-keys";
|
||||
@@ -469,12 +469,12 @@ export function useEngineBackendWalletBalance(params: {
|
||||
instanceUrl: string;
|
||||
address: string;
|
||||
authToken: string;
|
||||
chainId: number;
|
||||
}) {
|
||||
const { instanceUrl, address, authToken } = params;
|
||||
const chainId = useActiveWalletChain()?.id;
|
||||
const { instanceUrl, address, authToken, chainId } = params;
|
||||
|
||||
return useQuery({
|
||||
queryKey: engineKeys.backendWalletBalance(address, chainId || 1),
|
||||
queryKey: engineKeys.backendWalletBalance(address, chainId),
|
||||
queryFn: async () => {
|
||||
invariant(chainId, "chainId is required");
|
||||
|
||||
|
||||
+5
-1
@@ -4,6 +4,7 @@ import {
|
||||
toTokens,
|
||||
toUnits,
|
||||
} from "thirdweb";
|
||||
import { getContract } from "thirdweb/contract";
|
||||
import type { OverrideEntry } from "thirdweb/dist/types/utils/extensions/drops/types";
|
||||
import type { Prettify } from "thirdweb/dist/types/utils/type-utils";
|
||||
import { getContractMetadata } from "thirdweb/extensions/common";
|
||||
@@ -71,7 +72,10 @@ export async function getClaimPhasesInLegacyFormat(
|
||||
conditions.map(async (condition) => {
|
||||
const [currencyMetadata, metadata, contractMetadata] = await Promise.all([
|
||||
await ERC20Ext.getCurrencyMetadata({
|
||||
contract: { ...options.contract, address: condition.currency },
|
||||
contract: getContract({
|
||||
...options.contract,
|
||||
address: condition.currency,
|
||||
}),
|
||||
}).then((m) => ({
|
||||
...m,
|
||||
displayValue: toTokens(condition.pricePerToken, m.decimals),
|
||||
|
||||
+1
@@ -323,6 +323,7 @@ export const EmbedSetup: React.FC<EmbedSetupProps> = ({
|
||||
apiKeys.refetch();
|
||||
}}
|
||||
enableNebulaServiceByDefault={false}
|
||||
teamSlug={undefined}
|
||||
/>
|
||||
|
||||
<Alert variant="warning">
|
||||
|
||||
+2
-2
@@ -4,13 +4,13 @@ import { ScrollShadow } from "@/components/ui/ScrollShadow/ScrollShadow";
|
||||
import { Alert, AlertTitle } from "@/components/ui/alert";
|
||||
import type { Account as TWAccount } from "@3rdweb-sdk/react/hooks/useApi";
|
||||
import { CircleSlash } from "lucide-react";
|
||||
import type { ContractOptions } from "thirdweb";
|
||||
import type { ThirdwebContract } from "thirdweb/contract";
|
||||
import type { Account } from "thirdweb/wallets";
|
||||
import { ModuleCard } from "./module-card";
|
||||
import { useAllModuleContractInfo } from "./moduleContractInfo";
|
||||
|
||||
export const InstalledModulesTable = (props: {
|
||||
contract: ContractOptions;
|
||||
contract: ThirdwebContract;
|
||||
installedModules: {
|
||||
data?: string[];
|
||||
isPending: boolean;
|
||||
|
||||
+10
-7
@@ -15,8 +15,9 @@ import { FormProvider, type UseFormReturn, useForm } from "react-hook-form";
|
||||
import { toast } from "sonner";
|
||||
import {
|
||||
type Chain,
|
||||
type ContractOptions,
|
||||
type ThirdwebClient,
|
||||
type ThirdwebContract,
|
||||
getContract,
|
||||
sendTransaction,
|
||||
waitForReceipt,
|
||||
} from "thirdweb";
|
||||
@@ -47,7 +48,7 @@ type FormData = {
|
||||
};
|
||||
|
||||
type InstallModuleFormProps = {
|
||||
contract: ContractOptions;
|
||||
contract: ThirdwebContract;
|
||||
refetchModules: () => void;
|
||||
account: Account;
|
||||
installedModules: {
|
||||
@@ -180,11 +181,13 @@ export const InstallModuleForm = (props: InstallModuleFormProps) => {
|
||||
|
||||
return Promise.all(
|
||||
moduleAddress.map(async (address) => {
|
||||
const result = await resolveImplementation({
|
||||
client,
|
||||
address,
|
||||
chain: contract.chain,
|
||||
});
|
||||
const result = await resolveImplementation(
|
||||
getContract({
|
||||
client,
|
||||
address,
|
||||
chain: contract.chain,
|
||||
}),
|
||||
);
|
||||
|
||||
if (!result) {
|
||||
throw new Error("Failed to fetch bytecode for module");
|
||||
|
||||
+2
-2
@@ -23,7 +23,7 @@ import { Suspense, useEffect, useState } from "react";
|
||||
import { ErrorBoundary, type FallbackProps } from "react-error-boundary";
|
||||
import { toast } from "sonner";
|
||||
import {
|
||||
type ContractOptions,
|
||||
type ThirdwebContract,
|
||||
getContract,
|
||||
sendTransaction,
|
||||
waitForReceipt,
|
||||
@@ -35,7 +35,7 @@ import { useModuleContractInfo } from "./moduleContractInfo";
|
||||
|
||||
type ModuleCardProps = {
|
||||
moduleAddress: string;
|
||||
contract: ContractOptions;
|
||||
contract: ThirdwebContract;
|
||||
onRemoveModule: () => void;
|
||||
ownerAccount: Account | undefined;
|
||||
allModuleContractInfo: {
|
||||
|
||||
@@ -70,6 +70,11 @@ export function AccountHeader(props: {
|
||||
// refresh projects
|
||||
router.refresh();
|
||||
}}
|
||||
teamSlug={
|
||||
createProjectDialogState.isOpen
|
||||
? createProjectDialogState.team.slug
|
||||
: undefined
|
||||
}
|
||||
enableNebulaServiceByDefault={
|
||||
createProjectDialogState.isOpen &&
|
||||
createProjectDialogState.team.enabledScopes.includes("nebula")
|
||||
|
||||
@@ -9,7 +9,7 @@ import { useDashboardRouter } from "@/lib/DashboardRouter";
|
||||
import type { Account } from "@3rdweb-sdk/react/hooks/useApi";
|
||||
import { useTheme } from "next-themes";
|
||||
import Link from "next/link";
|
||||
import { Suspense, lazy, useState } from "react";
|
||||
import { Suspense, lazy, useEffect, useState } from "react";
|
||||
import { ConnectEmbed, useActiveWalletConnectionStatus } from "thirdweb/react";
|
||||
import { createWallet, inAppWallet } from "thirdweb/wallets";
|
||||
import { ClientOnly } from "../../components/ClientOnly/ClientOnly";
|
||||
@@ -154,27 +154,6 @@ function PageContent(props: {
|
||||
router.replace(props.redirectPath);
|
||||
}
|
||||
|
||||
if (connectionStatus === "connecting") {
|
||||
return <LoadingCard />;
|
||||
}
|
||||
|
||||
if (connectionStatus !== "connected" || screen.id === "login") {
|
||||
return <CustomConnectEmbed onLogin={onLogin} />;
|
||||
}
|
||||
|
||||
if (screen.id === "onboarding") {
|
||||
return (
|
||||
<Suspense fallback={<LoadingCard />}>
|
||||
<LazyOnboardingUI
|
||||
account={screen.account}
|
||||
onComplete={onComplete}
|
||||
redirectPath={props.redirectPath}
|
||||
redirectToCheckout={redirectToCheckout}
|
||||
/>
|
||||
</Suspense>
|
||||
);
|
||||
}
|
||||
|
||||
async function onLogin() {
|
||||
const account = await getRawAccountAction();
|
||||
|
||||
@@ -193,6 +172,38 @@ function PageContent(props: {
|
||||
}
|
||||
}
|
||||
|
||||
// eslint-disable-next-line no-restricted-syntax
|
||||
useEffect(() => {
|
||||
// if suddenly disconnected
|
||||
if (connectionStatus !== "connected" && screen.id !== "login") {
|
||||
setScreen({ id: "login" });
|
||||
}
|
||||
}, [connectionStatus, screen.id]);
|
||||
|
||||
if (connectionStatus === "connecting") {
|
||||
return <LoadingCard />;
|
||||
}
|
||||
|
||||
if (connectionStatus !== "connected" || screen.id === "login") {
|
||||
return <CustomConnectEmbed onLogin={onLogin} />;
|
||||
}
|
||||
|
||||
if (screen.id === "onboarding") {
|
||||
return (
|
||||
<Suspense fallback={<LoadingCard />}>
|
||||
<LazyOnboardingUI
|
||||
account={screen.account}
|
||||
onComplete={onComplete}
|
||||
redirectPath={props.redirectPath}
|
||||
redirectToCheckout={redirectToCheckout}
|
||||
onLogout={() => {
|
||||
setScreen({ id: "login" });
|
||||
}}
|
||||
/>
|
||||
</Suspense>
|
||||
);
|
||||
}
|
||||
|
||||
return <LoadingCard />;
|
||||
}
|
||||
|
||||
|
||||
@@ -14,12 +14,14 @@ type OnboardingGeneralProps = {
|
||||
account: Account;
|
||||
onSave: (email: string) => void;
|
||||
onDuplicate: (email: string) => void;
|
||||
onLogout: () => void;
|
||||
};
|
||||
|
||||
export const OnboardingGeneral: React.FC<OnboardingGeneralProps> = ({
|
||||
account,
|
||||
onSave,
|
||||
onDuplicate,
|
||||
onLogout,
|
||||
}) => {
|
||||
const [existing, setExisting] = useState(false);
|
||||
const activeWallet = useActiveWallet();
|
||||
@@ -27,6 +29,7 @@ export const OnboardingGeneral: React.FC<OnboardingGeneralProps> = ({
|
||||
|
||||
async function handleLogout() {
|
||||
await doLogout();
|
||||
onLogout();
|
||||
if (activeWallet) {
|
||||
disconnect(activeWallet);
|
||||
}
|
||||
|
||||
@@ -21,6 +21,7 @@ type OnboardingScreen =
|
||||
function OnboardingUI(props: {
|
||||
account: Account;
|
||||
onComplete: () => void;
|
||||
onLogout: () => void;
|
||||
// path to redirect from stripe
|
||||
redirectPath: string;
|
||||
redirectToCheckout: RedirectBillingCheckoutAction;
|
||||
@@ -68,6 +69,7 @@ function OnboardingUI(props: {
|
||||
{screen.id === "onboarding" && (
|
||||
<OnboardingGeneral
|
||||
account={account}
|
||||
onLogout={props.onLogout}
|
||||
onSave={(email) => {
|
||||
setUpdatedEmail(email);
|
||||
setScreen({
|
||||
|
||||
@@ -181,6 +181,7 @@ function SessionCard(props: {
|
||||
<Link
|
||||
className="before:absolute before:inset-0"
|
||||
href={`/chat/${props.session.id}`}
|
||||
prefetch={false}
|
||||
>
|
||||
{props.session.title || "Untitled"}
|
||||
</Link>
|
||||
|
||||
@@ -20,7 +20,7 @@ import type { ExecuteConfig, SessionInfo } from "../api/types";
|
||||
import { newChatPageUrlStore, newSessionsStore } from "../stores";
|
||||
import { ChatBar } from "./ChatBar";
|
||||
import { type ChatMessage, Chats } from "./Chats";
|
||||
import ContextFiltersButton from "./ContextFilters";
|
||||
import ContextFiltersButton, { ContextFiltersForm } from "./ContextFilters";
|
||||
import { EmptyStateChatPageContent } from "./EmptyStateChatPageContent";
|
||||
|
||||
export function ChatPageContent(props: {
|
||||
@@ -362,69 +362,92 @@ export function ChatPageContent(props: {
|
||||
|
||||
const showEmptyState = !userHasSubmittedMessage && messages.length === 0;
|
||||
|
||||
const handleUpdateContextFilters = async (
|
||||
values: ContextFilters | undefined,
|
||||
) => {
|
||||
// if session is not yet created, don't need to update sessions - starting a chat will create a session with the context filters
|
||||
if (sessionId) {
|
||||
await updateSession({
|
||||
authToken: props.authToken,
|
||||
config,
|
||||
sessionId,
|
||||
contextFilters: values,
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
return (
|
||||
<div className="flex grow flex-col overflow-hidden">
|
||||
<WalletDisconnectedDialog
|
||||
open={showConnectModal}
|
||||
onOpenChange={setShowConnectModal}
|
||||
/>
|
||||
<header className="flex justify-start border-b bg-background p-4">
|
||||
<header className="flex justify-between border-b bg-background p-4 xl:hidden">
|
||||
<ContextFiltersButton
|
||||
contextFilters={contextFilters}
|
||||
setContextFilters={setContextFilters}
|
||||
updateContextFilters={async (values) => {
|
||||
// if session is not yet created, don't need to update sessions - starting a chat will create a session with the context filters
|
||||
if (sessionId) {
|
||||
await updateSession({
|
||||
authToken: props.authToken,
|
||||
config,
|
||||
sessionId,
|
||||
contextFilters: values,
|
||||
});
|
||||
}
|
||||
}}
|
||||
updateContextFilters={handleUpdateContextFilters}
|
||||
/>
|
||||
</header>
|
||||
<div className="relative flex grow flex-col overflow-hidden rounded-lg pb-6">
|
||||
{showEmptyState ? (
|
||||
<div className="fade-in-0 container flex max-w-[800px] grow animate-in flex-col justify-center">
|
||||
<EmptyStateChatPageContent sendMessage={handleSendMessage} />
|
||||
</div>
|
||||
) : (
|
||||
<div className="fade-in-0 relative z-[0] flex max-h-full flex-1 animate-in flex-col overflow-hidden">
|
||||
<Chats
|
||||
messages={messages}
|
||||
isChatStreaming={isChatStreaming}
|
||||
authToken={props.authToken}
|
||||
sessionId={sessionId}
|
||||
className="min-w-0 pt-6 pb-32"
|
||||
twAccount={props.account}
|
||||
client={client}
|
||||
enableAutoScroll={enableAutoScroll}
|
||||
setEnableAutoScroll={setEnableAutoScroll}
|
||||
/>
|
||||
|
||||
<div className="container max-w-[800px]">
|
||||
<ChatBar
|
||||
sendMessage={handleSendMessage}
|
||||
isChatStreaming={isChatStreaming}
|
||||
abortChatStream={() => {
|
||||
chatAbortController?.abort();
|
||||
setChatAbortController(undefined);
|
||||
setIsChatStreaming(false);
|
||||
// if last message is presence, remove it
|
||||
if (messages[messages.length - 1]?.type === "presence") {
|
||||
setMessages((prev) => prev.slice(0, -1));
|
||||
}
|
||||
}}
|
||||
/>
|
||||
<div className="flex grow overflow-hidden">
|
||||
<div className="relative flex grow flex-col overflow-hidden rounded-lg pb-6">
|
||||
{showEmptyState ? (
|
||||
<div className="fade-in-0 container flex max-w-[800px] grow animate-in flex-col justify-center">
|
||||
<EmptyStateChatPageContent sendMessage={handleSendMessage} />
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
) : (
|
||||
<div className="fade-in-0 relative z-[0] flex max-h-full flex-1 animate-in flex-col overflow-hidden">
|
||||
<Chats
|
||||
messages={messages}
|
||||
isChatStreaming={isChatStreaming}
|
||||
authToken={props.authToken}
|
||||
sessionId={sessionId}
|
||||
className="min-w-0 pt-6 pb-32"
|
||||
twAccount={props.account}
|
||||
client={client}
|
||||
enableAutoScroll={enableAutoScroll}
|
||||
setEnableAutoScroll={setEnableAutoScroll}
|
||||
/>
|
||||
|
||||
<p className="mt-4 text-center text-muted-foreground text-xs opacity-75 lg:text-sm">
|
||||
Nebula may make mistakes. Please use with discretion
|
||||
</p>
|
||||
<div className="container max-w-[800px]">
|
||||
<ChatBar
|
||||
sendMessage={handleSendMessage}
|
||||
isChatStreaming={isChatStreaming}
|
||||
abortChatStream={() => {
|
||||
chatAbortController?.abort();
|
||||
setChatAbortController(undefined);
|
||||
setIsChatStreaming(false);
|
||||
// if last message is presence, remove it
|
||||
if (messages[messages.length - 1]?.type === "presence") {
|
||||
setMessages((prev) => prev.slice(0, -1));
|
||||
}
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
|
||||
<p className="mt-4 text-center text-muted-foreground text-xs opacity-75 lg:text-sm">
|
||||
Nebula may make mistakes. Please use with discretion
|
||||
</p>
|
||||
</div>
|
||||
<aside className="hidden w-[360px] flex-col border-l bg-card pt-4 xl:flex">
|
||||
<div className="px-4">
|
||||
<h3 className="font-semibold text-lg tracking-tight">Context</h3>
|
||||
<p className="mb-5 text-muted-foreground text-sm">
|
||||
Provide context to Nebula for your prompts
|
||||
</p>
|
||||
</div>
|
||||
<ContextFiltersForm
|
||||
contextFilters={contextFilters}
|
||||
setContextFilters={setContextFilters}
|
||||
modal={undefined}
|
||||
updateContextFilters={handleUpdateContextFilters}
|
||||
formBodyClassName="px-4"
|
||||
formActionContainerClassName="px-4 border-t-0 pt-0 bg-transparent"
|
||||
/>
|
||||
</aside>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
|
||||
@@ -4,6 +4,8 @@ import { Badge } from "@/components/ui/badge";
|
||||
import { Button } from "@/components/ui/button";
|
||||
import type { Account } from "@3rdweb-sdk/react/hooks/useApi";
|
||||
import {
|
||||
FileCode2Icon,
|
||||
MessageSquareShareIcon,
|
||||
MessagesSquareIcon,
|
||||
SquareDashedBottomCodeIcon,
|
||||
TextIcon,
|
||||
@@ -29,8 +31,11 @@ export function ChatSidebar(props: {
|
||||
return (
|
||||
<div className="flex h-full flex-col p-2">
|
||||
<div className="flex items-center justify-start gap-3 p-2 lg:justify-between">
|
||||
<Link href="/">
|
||||
<NebulaIcon className="size-8 text-foreground" />
|
||||
<Link href="/" className="flex items-center gap-2">
|
||||
<NebulaIcon className="size-8 text-foreground" aria-label="Nebula" />
|
||||
<span className="font-semibold text-lg tracking-tight">
|
||||
Playground
|
||||
</span>
|
||||
</Link>
|
||||
|
||||
<Badge variant="secondary" className="gap-1 py-1">
|
||||
@@ -48,6 +53,13 @@ export function ChatSidebar(props: {
|
||||
|
||||
<div className="h-3" />
|
||||
|
||||
<SidebarIconLink
|
||||
href="https://portal.thirdweb.com/nebula/api-reference"
|
||||
icon={FileCode2Icon}
|
||||
label="API Reference"
|
||||
target="_blank"
|
||||
/>
|
||||
|
||||
<SidebarIconLink
|
||||
href="/chat/history"
|
||||
icon={MessagesSquareIcon}
|
||||
@@ -79,7 +91,14 @@ export function ChatSidebar(props: {
|
||||
</ScrollShadow>
|
||||
)}
|
||||
|
||||
<div className="mb-3 border-b border-dashed pt-2 pb-3">
|
||||
<div className="mb-3 border-y border-dashed py-3">
|
||||
<SidebarIconLink
|
||||
href="https://docs.google.com/forms/d/e/1FAIpQLSeM3fJRyywihRZUF1fiTNKEpJ_AzAcohRwXPpLr_3zxQ6W-tg/viewform?usp=sharing"
|
||||
icon={MessageSquareShareIcon}
|
||||
label="Take our quick survey!"
|
||||
target="_blank"
|
||||
/>
|
||||
|
||||
<SidebarIconLink
|
||||
href="https://portal.thirdweb.com/changelog"
|
||||
icon={TextIcon}
|
||||
@@ -116,6 +135,7 @@ function SidebarIconLink(props: {
|
||||
href={props.href}
|
||||
target={props.target}
|
||||
className="!justify-start !px-3 w-full gap-2.5 rounded-lg text-left"
|
||||
prefetch={false}
|
||||
>
|
||||
<props.icon className="size-4" />
|
||||
{props.label}
|
||||
|
||||
@@ -8,6 +8,7 @@ import {
|
||||
Dialog,
|
||||
DialogClose,
|
||||
DialogContent,
|
||||
DialogDescription,
|
||||
DialogHeader,
|
||||
DialogTitle,
|
||||
DialogTrigger,
|
||||
@@ -15,15 +16,14 @@ import {
|
||||
import {
|
||||
Form,
|
||||
FormControl,
|
||||
FormDescription,
|
||||
FormField,
|
||||
FormItem,
|
||||
FormLabel,
|
||||
FormMessage,
|
||||
} from "@/components/ui/form";
|
||||
import { AutoResizeTextarea } from "@/components/ui/textarea";
|
||||
import { cn } from "@/lib/utils";
|
||||
import { zodResolver } from "@hookform/resolvers/zod";
|
||||
import { DialogDescription } from "@radix-ui/react-dialog";
|
||||
import { useMutation } from "@tanstack/react-query";
|
||||
import { SlidersHorizontalIcon } from "lucide-react";
|
||||
import { useState } from "react";
|
||||
@@ -39,9 +39,6 @@ export default function ContextFiltersButton(props: {
|
||||
updateContextFilters: (filters: ContextFilters | undefined) => Promise<void>;
|
||||
}) {
|
||||
const [isOpen, setIsOpen] = useState(false);
|
||||
const updateMutation = useMutation({
|
||||
mutationFn: props.updateContextFilters,
|
||||
});
|
||||
|
||||
const chainIds = props.contextFilters?.chainIds;
|
||||
const contractAddresses = props.contextFilters?.contractAddresses;
|
||||
@@ -85,21 +82,22 @@ export default function ContextFiltersButton(props: {
|
||||
</div>
|
||||
</Button>
|
||||
</DialogTrigger>
|
||||
<DialogContent className="p-0">
|
||||
<ContextFilterDialogContent
|
||||
contextFilters={props.contextFilters}
|
||||
isPending={updateMutation.isPending}
|
||||
updateFilters={async (data) => {
|
||||
const promise = updateMutation.mutateAsync(data);
|
||||
toast.promise(promise, {
|
||||
success: "Context filters updated",
|
||||
error: "Failed to update context filters",
|
||||
});
|
||||
<DialogContent className="overflow-hidden p-0">
|
||||
<DialogHeader className="px-6 pt-6 pb-1">
|
||||
<DialogTitle className="font-semibold text-xl">
|
||||
Context Filters
|
||||
</DialogTitle>
|
||||
<DialogDescription className="text-muted-foreground">
|
||||
Provide context to Nebula for your prompts
|
||||
</DialogDescription>
|
||||
</DialogHeader>
|
||||
|
||||
promise.then(() => {
|
||||
props.setContextFilters(data);
|
||||
setIsOpen(false);
|
||||
});
|
||||
<ContextFiltersForm
|
||||
contextFilters={props.contextFilters}
|
||||
updateContextFilters={props.updateContextFilters}
|
||||
setContextFilters={props.setContextFilters}
|
||||
modal={{
|
||||
close: () => setIsOpen(false),
|
||||
}}
|
||||
/>
|
||||
</DialogContent>
|
||||
@@ -138,11 +136,22 @@ const formSchema = z.object({
|
||||
walletAddresses: commaSeparateListOfAddresses,
|
||||
});
|
||||
|
||||
function ContextFilterDialogContent(props: {
|
||||
export function ContextFiltersForm(props: {
|
||||
contextFilters: ContextFilters | undefined;
|
||||
updateFilters: (filters: ContextFilters | undefined) => void;
|
||||
isPending: boolean;
|
||||
updateContextFilters: (filters: ContextFilters | undefined) => Promise<void>;
|
||||
setContextFilters: (filters: ContextFilters | undefined) => void;
|
||||
formBodyClassName?: string;
|
||||
formActionContainerClassName?: string;
|
||||
modal:
|
||||
| {
|
||||
close: () => void;
|
||||
}
|
||||
| undefined;
|
||||
}) {
|
||||
const updateMutation = useMutation({
|
||||
mutationFn: props.updateContextFilters,
|
||||
});
|
||||
|
||||
const form = useForm<z.infer<typeof formSchema>>({
|
||||
resolver: zodResolver(formSchema),
|
||||
values: {
|
||||
@@ -172,26 +181,37 @@ function ContextFilterDialogContent(props: {
|
||||
.split(",")
|
||||
.filter((v) => v.trim());
|
||||
|
||||
props.updateFilters({
|
||||
const data = {
|
||||
chainIds: chainIdsArray,
|
||||
contractAddresses: contractAddressesArray,
|
||||
walletAddresses: walletAddressesArray,
|
||||
};
|
||||
|
||||
const promise = updateMutation.mutateAsync(data);
|
||||
|
||||
toast.promise(promise, {
|
||||
success: "Context filters updated",
|
||||
error: "Failed to update context filters",
|
||||
});
|
||||
|
||||
promise.then(() => {
|
||||
props.setContextFilters(data);
|
||||
props.modal?.close?.();
|
||||
});
|
||||
}
|
||||
|
||||
return (
|
||||
<Form {...form}>
|
||||
<DialogHeader className="px-6 pt-6 pb-1">
|
||||
<DialogTitle className="font-semibold text-xl">
|
||||
Context Filters
|
||||
</DialogTitle>
|
||||
<DialogDescription className="text-muted-foreground">
|
||||
Provide context information to Nebula for your prompts
|
||||
</DialogDescription>
|
||||
</DialogHeader>
|
||||
|
||||
<form onSubmit={form.handleSubmit(onSubmit)}>
|
||||
<div className="flex flex-col gap-5 px-6">
|
||||
<form
|
||||
onSubmit={form.handleSubmit(onSubmit)}
|
||||
className={cn("flex w-full grow flex-col")}
|
||||
>
|
||||
<div
|
||||
className={cn(
|
||||
"flex flex-col gap-5 px-6 pb-6",
|
||||
props.formBodyClassName,
|
||||
)}
|
||||
>
|
||||
<FormField
|
||||
control={form.control}
|
||||
name="chainIds"
|
||||
@@ -200,6 +220,8 @@ function ContextFilterDialogContent(props: {
|
||||
<FormLabel>Chain IDs</FormLabel>
|
||||
<FormControl>
|
||||
<MultiNetworkSelector
|
||||
disableChainId
|
||||
className="bg-background"
|
||||
selectedChainIds={form
|
||||
.watch()
|
||||
.chainIds.split(",")
|
||||
@@ -226,12 +248,9 @@ function ContextFilterDialogContent(props: {
|
||||
<AutoResizeTextarea
|
||||
{...field}
|
||||
placeholder="0x123..., 0x456..."
|
||||
className="min-h-[32px] resize-none"
|
||||
className="!leading-relaxed min-h-[52px] resize-none md:text-xs"
|
||||
/>
|
||||
</FormControl>
|
||||
<FormDescription>
|
||||
Comma separated list of contract addresses
|
||||
</FormDescription>
|
||||
<FormMessage />
|
||||
</FormItem>
|
||||
)}
|
||||
@@ -247,25 +266,36 @@ function ContextFilterDialogContent(props: {
|
||||
<AutoResizeTextarea
|
||||
{...field}
|
||||
placeholder="0x123..., 0x456..."
|
||||
className="min-h-[32px] resize-none"
|
||||
className="!leading-relaxed min-h-[52px] resize-none md:text-xs"
|
||||
/>
|
||||
</FormControl>
|
||||
<FormDescription>
|
||||
Comma separated list of wallet addresses
|
||||
</FormDescription>
|
||||
<FormMessage />
|
||||
</FormItem>
|
||||
)}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div className="mt-10 flex justify-end gap-3 border-t bg-card p-6">
|
||||
<DialogClose asChild>
|
||||
<Button variant="outline">Cancel</Button>
|
||||
</DialogClose>
|
||||
<Button className="min-w-28 gap-2" type="submit">
|
||||
{props.isPending && <Spinner className="size-4" />}
|
||||
Update
|
||||
<div
|
||||
className={cn(
|
||||
"flex justify-end gap-3 border-t bg-card p-6",
|
||||
props.formActionContainerClassName,
|
||||
)}
|
||||
>
|
||||
{props.modal && (
|
||||
<DialogClose asChild>
|
||||
<Button variant="outline" size="sm">
|
||||
Cancel
|
||||
</Button>
|
||||
</DialogClose>
|
||||
)}
|
||||
<Button
|
||||
className="min-w-24 gap-2"
|
||||
type="submit"
|
||||
size="sm"
|
||||
disabled={updateMutation.isPending}
|
||||
>
|
||||
{updateMutation.isPending && <Spinner className="size-4" />}
|
||||
Update Context
|
||||
</Button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
@@ -10,7 +10,7 @@ export function EmptyStateChatPageContent(props: {
|
||||
sendMessage: (message: string) => void;
|
||||
}) {
|
||||
return (
|
||||
<div className="py-16">
|
||||
<div className="py-10 lg:py-16">
|
||||
<div className="relative py-10">
|
||||
<FancyBorders />
|
||||
<div className="flex justify-center">
|
||||
|
||||
+16
-15
@@ -5,6 +5,7 @@ import { Badge } from "@/components/ui/badge";
|
||||
import { Button } from "@/components/ui/button";
|
||||
import { Checkbox, CheckboxWithLabel } from "@/components/ui/checkbox";
|
||||
import { FormItem } from "@/components/ui/form";
|
||||
import { Skeleton } from "@/components/ui/skeleton";
|
||||
import {
|
||||
type BackendWallet,
|
||||
useEngineBackendWalletBalance,
|
||||
@@ -34,11 +35,9 @@ import { type ColumnDef, createColumnHelper } from "@tanstack/react-table";
|
||||
import { ChainIcon } from "components/icons/ChainIcon";
|
||||
import { TWTable } from "components/shared/TWTable";
|
||||
import { useTrack } from "hooks/analytics/useTrack";
|
||||
import { useAllChainsData } from "hooks/chains/allChains";
|
||||
import { EngineBackendWalletOptions } from "lib/engine";
|
||||
import {
|
||||
useActiveChainAsDashboardChain,
|
||||
useV5DashboardChain,
|
||||
} from "lib/v5-adapter";
|
||||
import { useV5DashboardChain } from "lib/v5-adapter";
|
||||
import {
|
||||
DownloadIcon,
|
||||
PencilIcon,
|
||||
@@ -52,7 +51,6 @@ import { useForm } from "react-hook-form";
|
||||
import { toast } from "sonner";
|
||||
import { getAddress } from "thirdweb";
|
||||
import { shortenAddress } from "thirdweb/utils";
|
||||
import invariant from "tiny-invariant";
|
||||
import { FormHelperText, FormLabel, LinkButton, Text } from "tw-components";
|
||||
import { prettyPrintCurrency } from "./utils";
|
||||
|
||||
@@ -89,21 +87,21 @@ const BackendWalletBalanceCell: React.FC<BackendWalletBalanceCellProps> = ({
|
||||
instanceUrl: instanceUrl,
|
||||
address,
|
||||
authToken,
|
||||
chainId,
|
||||
});
|
||||
const chain = useV5DashboardChain(chainId);
|
||||
if (!chain || !backendWalletBalance) {
|
||||
return;
|
||||
|
||||
if (!backendWalletBalance) {
|
||||
return <Skeleton className="h-5 w-32 rounded-lg" />;
|
||||
}
|
||||
|
||||
const balanceDisplay = prettyPrintCurrency({
|
||||
amount: backendWalletBalance.displayValue,
|
||||
symbol: backendWalletBalance.symbol,
|
||||
symbol: backendWalletBalance.symbol || chain.nativeCurrency?.symbol,
|
||||
});
|
||||
|
||||
const balanceComponent = (
|
||||
<Text fontWeight={backendWalletBalance.value === "0" ? "light" : "bold"}>
|
||||
{balanceDisplay}
|
||||
</Text>
|
||||
<div className="text-muted-foreground">{balanceDisplay}</div>
|
||||
);
|
||||
|
||||
const explorer = chain.blockExplorers?.[0];
|
||||
@@ -250,6 +248,7 @@ export const BackendWalletsTable: React.FC<BackendWalletsTableProps> = ({
|
||||
disclosure={sendDisclosure}
|
||||
instanceUrl={instanceUrl}
|
||||
authToken={authToken}
|
||||
chainId={chainId}
|
||||
/>
|
||||
)}
|
||||
{selectedBackendWallet && deleteDisclosure.isOpen && (
|
||||
@@ -425,24 +424,28 @@ const SendFundsModal = ({
|
||||
disclosure,
|
||||
instanceUrl,
|
||||
authToken,
|
||||
chainId,
|
||||
}: {
|
||||
fromWallet: BackendWallet;
|
||||
backendWallets: BackendWallet[];
|
||||
disclosure: UseDisclosureReturn;
|
||||
instanceUrl: string;
|
||||
authToken: string;
|
||||
chainId: number;
|
||||
}) => {
|
||||
const chain = useActiveChainAsDashboardChain();
|
||||
const form = useForm<SendFundsInput>();
|
||||
const sendTokens = useEngineSendTokens({
|
||||
instanceUrl,
|
||||
authToken,
|
||||
});
|
||||
const { idToChain } = useAllChainsData();
|
||||
const { data: backendWalletBalance } = useEngineBackendWalletBalance({
|
||||
instanceUrl,
|
||||
address: fromWallet.address,
|
||||
authToken,
|
||||
chainId: chainId,
|
||||
});
|
||||
const chain = idToChain.get(chainId);
|
||||
const toWalletDisclosure = useDisclosure();
|
||||
|
||||
if (!backendWalletBalance) {
|
||||
@@ -450,11 +453,9 @@ const SendFundsModal = ({
|
||||
}
|
||||
|
||||
const onSubmit = async (data: SendFundsInput) => {
|
||||
invariant(chain, "chain is required");
|
||||
|
||||
const promise = sendTokens.mutateAsync(
|
||||
{
|
||||
chainId: chain.chainId,
|
||||
chainId: chainId,
|
||||
fromAddress: fromWallet.address,
|
||||
toAddress: data.toAddress,
|
||||
amount: data.amount,
|
||||
|
||||
+2
-2
@@ -3,9 +3,9 @@ export const prettyPrintCurrency = ({
|
||||
symbol,
|
||||
}: {
|
||||
amount?: string | number;
|
||||
symbol: string;
|
||||
symbol?: string;
|
||||
}): string => {
|
||||
const amountNumber =
|
||||
typeof amount === "string" ? Number.parseFloat(amount) : (amount ?? 0);
|
||||
return `${amountNumber.toFixed(6)} ${symbol}`;
|
||||
return `${amountNumber.toFixed(6)} ${symbol || ""}`;
|
||||
};
|
||||
|
||||
@@ -170,6 +170,7 @@ export function TeamProjectsPage(props: {
|
||||
<LazyCreateAPIKeyDialog
|
||||
open={isCreateProjectDialogOpen}
|
||||
onOpenChange={setIsCreateProjectDialogOpen}
|
||||
teamSlug={props.team.slug}
|
||||
onCreateAndComplete={() => {
|
||||
// refresh projects
|
||||
router.refresh();
|
||||
|
||||
@@ -65,6 +65,11 @@ export function TeamHeaderLoggedIn(props: {
|
||||
|
||||
<LazyCreateAPIKeyDialog
|
||||
open={createProjectDialogState.isOpen}
|
||||
teamSlug={
|
||||
createProjectDialogState.isOpen
|
||||
? createProjectDialogState.team.slug
|
||||
: undefined
|
||||
}
|
||||
onOpenChange={() =>
|
||||
setCreateProjectDialogState({
|
||||
isOpen: false,
|
||||
|
||||
+8
-6
@@ -25,7 +25,7 @@ import { CircleAlertIcon, ExternalLinkIcon, InfoIcon } from "lucide-react";
|
||||
import Link from "next/link";
|
||||
import { useCallback, useMemo } from "react";
|
||||
import { FormProvider, type UseFormReturn, useForm } from "react-hook-form";
|
||||
import { ZERO_ADDRESS } from "thirdweb";
|
||||
import { ZERO_ADDRESS, getContract } from "thirdweb";
|
||||
import type { FetchDeployMetadataResult } from "thirdweb/contract";
|
||||
import {
|
||||
deployContractfromDeployMetadata,
|
||||
@@ -567,11 +567,13 @@ export const CustomContractForm: React.FC<CustomContractFormProps> = ({
|
||||
const contractAddr = await deployMutation.mutateAsync(formData);
|
||||
|
||||
// send verification request - no need to await
|
||||
verifyContract({
|
||||
address: contractAddr,
|
||||
chain: walletChain,
|
||||
client: thirdwebClient,
|
||||
});
|
||||
verifyContract(
|
||||
getContract({
|
||||
address: contractAddr,
|
||||
chain: walletChain,
|
||||
client: thirdwebClient,
|
||||
}),
|
||||
);
|
||||
|
||||
trackEvent({
|
||||
category: "custom-contract",
|
||||
|
||||
@@ -53,6 +53,7 @@ function Story(props: {
|
||||
createKeyMutation={mutation}
|
||||
prefill={props.prefill}
|
||||
enableNebulaServiceByDefault={false}
|
||||
teamSlug="foo"
|
||||
/>
|
||||
|
||||
<Button
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
import { apiServerProxy } from "@/actions/proxies";
|
||||
import type { Project } from "@/api/projects";
|
||||
import { CopyTextButton } from "@/components/ui/CopyTextButton";
|
||||
import { DynamicHeight } from "@/components/ui/DynamicHeight";
|
||||
import { Spinner } from "@/components/ui/Spinner/Spinner";
|
||||
@@ -23,6 +25,7 @@ import {
|
||||
} from "@/components/ui/form";
|
||||
import { Input } from "@/components/ui/input";
|
||||
import { Textarea } from "@/components/ui/textarea";
|
||||
import { useDashboardRouter } from "@/lib/DashboardRouter";
|
||||
import {
|
||||
type ApiKey,
|
||||
type CreateKeyInput,
|
||||
@@ -30,10 +33,10 @@ import {
|
||||
} from "@3rdweb-sdk/react/hooks/useApi";
|
||||
import { zodResolver } from "@hookform/resolvers/zod";
|
||||
import { DialogDescription } from "@radix-ui/react-dialog";
|
||||
import type { UseMutationResult } from "@tanstack/react-query";
|
||||
import { type UseMutationResult, useQuery } from "@tanstack/react-query";
|
||||
import { SERVICES } from "@thirdweb-dev/service-utils";
|
||||
import { useTrack } from "hooks/analytics/useTrack";
|
||||
import { ArrowLeftIcon } from "lucide-react";
|
||||
import { ArrowLeftIcon, ExternalLinkIcon } from "lucide-react";
|
||||
import { useState } from "react";
|
||||
import { useForm } from "react-hook-form";
|
||||
import { toast } from "sonner";
|
||||
@@ -54,6 +57,7 @@ export type CreateAPIKeyDialogProps = {
|
||||
onCreateAndComplete?: () => void;
|
||||
prefill?: CreateAPIKeyPrefillOptions;
|
||||
enableNebulaServiceByDefault: boolean;
|
||||
teamSlug: string | undefined;
|
||||
};
|
||||
|
||||
const CreateAPIKeyDialog = (props: CreateAPIKeyDialogProps) => {
|
||||
@@ -78,6 +82,7 @@ export const CreateAPIKeyDialogUI = (props: {
|
||||
>;
|
||||
prefill?: CreateAPIKeyPrefillOptions;
|
||||
enableNebulaServiceByDefault: boolean;
|
||||
teamSlug: string | undefined;
|
||||
}) => {
|
||||
const [screen, setScreen] = useState<
|
||||
{ id: "create" } | { id: "api-details"; key: ApiKey }
|
||||
@@ -97,7 +102,7 @@ export const CreateAPIKeyDialogUI = (props: {
|
||||
}}
|
||||
>
|
||||
<DialogContent
|
||||
className="z-[10001] p-0"
|
||||
className="z-[10001] overflow-hidden p-0"
|
||||
dialogOverlayClassName="z-[10000]"
|
||||
dialogCloseClassName={screen.id === "api-details" ? "hidden" : ""}
|
||||
>
|
||||
@@ -116,6 +121,7 @@ export const CreateAPIKeyDialogUI = (props: {
|
||||
{screen.id === "api-details" && (
|
||||
<APIKeyDetails
|
||||
apiKey={screen.key}
|
||||
teamSlug={props.teamSlug}
|
||||
onComplete={() => {
|
||||
onOpenChange(false);
|
||||
setScreen({ id: "create" });
|
||||
@@ -402,9 +408,35 @@ function DomainsAlert(props: {
|
||||
function APIKeyDetails(props: {
|
||||
apiKey: ApiKey;
|
||||
onComplete: () => void;
|
||||
teamSlug: string | undefined;
|
||||
}) {
|
||||
const { apiKey } = props;
|
||||
const [secretStored, setSecretStored] = useState(false);
|
||||
const router = useDashboardRouter();
|
||||
|
||||
// get the project.slug for the apiKey to render "View Project" button
|
||||
const projectQuery = useQuery({
|
||||
queryKey: ["project", props.teamSlug, apiKey.id],
|
||||
queryFn: async () => {
|
||||
const res = await apiServerProxy<{
|
||||
result: Project[];
|
||||
}>({
|
||||
method: "GET",
|
||||
pathname: `/v1/teams/${props.teamSlug}/projects`,
|
||||
});
|
||||
|
||||
if (!res.ok) {
|
||||
throw new Error(res.error);
|
||||
}
|
||||
|
||||
const projects = res.data.result;
|
||||
const project = projects.find((p) => p.publishableKey === apiKey.key);
|
||||
return project || null;
|
||||
},
|
||||
enabled: !!props.teamSlug,
|
||||
});
|
||||
|
||||
const projectSlug = projectQuery.data?.slug;
|
||||
|
||||
return (
|
||||
<div>
|
||||
@@ -474,10 +506,31 @@ function APIKeyDetails(props: {
|
||||
type="button"
|
||||
onClick={props.onComplete}
|
||||
disabled={!secretStored}
|
||||
variant="outline"
|
||||
className="min-w-28 gap-2"
|
||||
>
|
||||
Complete
|
||||
{props.teamSlug ? "Close" : "Complete"}
|
||||
</Button>
|
||||
|
||||
{props.teamSlug && (
|
||||
<Button
|
||||
onClick={() => {
|
||||
if (!projectSlug) {
|
||||
return;
|
||||
}
|
||||
router.push(`/team/${props.teamSlug}/${projectSlug}`);
|
||||
}}
|
||||
disabled={!secretStored || !projectSlug}
|
||||
className="min-w-28 gap-2"
|
||||
>
|
||||
View Project
|
||||
{projectQuery.isPending ? (
|
||||
<Spinner className="size-4" />
|
||||
) : (
|
||||
<ExternalLinkIcon className="size-4" />
|
||||
)}
|
||||
</Button>
|
||||
)}
|
||||
</DialogFooter>
|
||||
</div>
|
||||
);
|
||||
|
||||
@@ -13,8 +13,8 @@
|
||||
"fix": "eslint ./src --fix"
|
||||
},
|
||||
"dependencies": {
|
||||
"@abstract-foundation/agw-client": "^1.0.1",
|
||||
"@abstract-foundation/agw-react": "^1.0.1",
|
||||
"@abstract-foundation/agw-client": "^1.3.0",
|
||||
"@abstract-foundation/agw-react": "^1.4.1",
|
||||
"@radix-ui/react-accordion": "^1.2.2",
|
||||
"@radix-ui/react-checkbox": "^1.1.3",
|
||||
"@radix-ui/react-dialog": "1.1.4",
|
||||
@@ -34,7 +34,7 @@
|
||||
"class-variance-authority": "^0.7.1",
|
||||
"clsx": "^2.1.1",
|
||||
"lucide-react": "0.468.0",
|
||||
"next": "15.1.3",
|
||||
"next": "15.1.4",
|
||||
"next-themes": "^0.4.4",
|
||||
"prettier": "3.3.3",
|
||||
"react": "19.0.0",
|
||||
|
||||
@@ -11,7 +11,7 @@ const getEcosystem = () => {
|
||||
return "ecosystem.catlovers";
|
||||
}
|
||||
// prod ecosystem
|
||||
return "ecosystem.new-age";
|
||||
return "ecosystem.thirdweb-engs";
|
||||
};
|
||||
|
||||
export function EcosystemConnectEmbed(
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
"@dirtycajunrice/klee": "^1.0.6",
|
||||
"@mdx-js/loader": "^2.3.0",
|
||||
"@mdx-js/react": "^2.3.0",
|
||||
"@next/mdx": "15.1.0",
|
||||
"@next/mdx": "15.1.4",
|
||||
"@radix-ui/react-dialog": "1.1.4",
|
||||
"@radix-ui/react-dropdown-menu": "^2.1.3",
|
||||
"@radix-ui/react-select": "^2.1.3",
|
||||
@@ -35,7 +35,7 @@
|
||||
"flexsearch": "^0.7.43",
|
||||
"github-slugger": "^2.0.0",
|
||||
"lucide-react": "0.468.0",
|
||||
"next": "15.1.3",
|
||||
"next": "15.1.4",
|
||||
"nextjs-toploader": "^1.6.12",
|
||||
"node-html-parser": "^6.1.13",
|
||||
"posthog-js": "1.67.1",
|
||||
@@ -53,7 +53,7 @@
|
||||
"typedoc-better-json": "0.9.4"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@next/eslint-plugin-next": "15.1.3",
|
||||
"@next/eslint-plugin-next": "15.1.4",
|
||||
"@types/flexsearch": "^0.7.6",
|
||||
"@types/mdx": "^2.0.13",
|
||||
"@types/node": "22.10.2",
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
"clsx": "^2.1.1",
|
||||
"cmdk": "^1.0.4",
|
||||
"lucide-react": "0.468.0",
|
||||
"next": "15.1.3",
|
||||
"next": "15.1.4",
|
||||
"next-themes": "^0.4.4",
|
||||
"react": "19.0.0",
|
||||
"react-dom": "19.0.0",
|
||||
@@ -35,7 +35,7 @@
|
||||
"zod": "3.24.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@next/eslint-plugin-next": "15.1.3",
|
||||
"@next/eslint-plugin-next": "15.1.4",
|
||||
"@types/node": "22.10.2",
|
||||
"@types/react": "19.0.2",
|
||||
"@types/react-dom": "19.0.3",
|
||||
|
||||
@@ -1,5 +1,13 @@
|
||||
# @thirdweb-dev/service-utils
|
||||
|
||||
## 0.7.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- [#6047](https://github.com/thirdweb-dev/js/pull/6047) [`7a8e4e5`](https://github.com/thirdweb-dev/js/commit/7a8e4e5f861070858b4716ac95ba5bc60c284924) Thanks [@arcoraven](https://github.com/arcoraven)! - Export usageV2 util functions
|
||||
|
||||
- [#6050](https://github.com/thirdweb-dev/js/pull/6050) [`fb4d0a2`](https://github.com/thirdweb-dev/js/commit/fb4d0a26f162a098878a1a63a61fef6033bcd5e9) Thanks [@arcoraven](https://github.com/arcoraven)! - [service-utils] replace client_id with project_id in usage_v2
|
||||
|
||||
## 0.7.0
|
||||
|
||||
### Minor Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@thirdweb-dev/service-utils",
|
||||
"version": "0.7.0",
|
||||
"version": "0.7.1",
|
||||
"type": "module",
|
||||
"main": "dist/cjs/index.js",
|
||||
"module": "dist/esm/index.js",
|
||||
|
||||
@@ -11,6 +11,8 @@ import type { AuthorizationResult } from "../core/authorize/types.js";
|
||||
import type { CoreAuthInput } from "../core/types.js";
|
||||
|
||||
export * from "./usage.js";
|
||||
export * from "./usageV2.js";
|
||||
export * from "../core/usageV2.js";
|
||||
export * from "../core/services.js";
|
||||
export * from "../core/rateLimit/index.js";
|
||||
|
||||
|
||||
@@ -21,9 +21,9 @@ export interface UsageV2Event {
|
||||
*/
|
||||
team_id: string;
|
||||
/**
|
||||
* The client ID, if available.
|
||||
* The project ID, if available.
|
||||
*/
|
||||
client_id?: string;
|
||||
project_id?: string;
|
||||
/**
|
||||
* The SDK name, if available.
|
||||
*/
|
||||
|
||||
@@ -12,9 +12,13 @@ import type {
|
||||
} from "../core/authorize/index.js";
|
||||
import type { AuthorizationResult } from "../core/authorize/types.js";
|
||||
import type { CoreAuthInput } from "../core/types.js";
|
||||
|
||||
export * from "./usageV2.js";
|
||||
export * from "../core/usage.js";
|
||||
export * from "../core/usageV2.js";
|
||||
export * from "../core/rateLimit/index.js";
|
||||
export * from "../core/services.js";
|
||||
|
||||
type NodeServiceConfig = CoreServiceConfig;
|
||||
|
||||
export type AuthInput = CoreAuthInput & {
|
||||
|
||||
@@ -90,7 +90,7 @@ export class UsageV2Producer {
|
||||
team_id: event.team_id.startsWith("team_")
|
||||
? event.team_id.slice(5)
|
||||
: event.team_id,
|
||||
client_id: event.client_id,
|
||||
project_id: event.project_id,
|
||||
sdk_name: event.sdk_name,
|
||||
sdk_platform: event.sdk_platform,
|
||||
sdk_version: event.sdk_version,
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
{
|
||||
"name": "thirdweb (cjs)",
|
||||
"path": "./dist/cjs/exports/thirdweb.js",
|
||||
"limit": "120 kB"
|
||||
"limit": "130 kB"
|
||||
},
|
||||
{
|
||||
"name": "thirdweb (minimal + tree-shaking)",
|
||||
@@ -19,7 +19,7 @@
|
||||
{
|
||||
"name": "thirdweb/chains (tree-shaking)",
|
||||
"path": "./dist/esm/exports/chains.js",
|
||||
"limit": "600 B",
|
||||
"limit": "650 B",
|
||||
"import": "{ ethereum }"
|
||||
},
|
||||
{
|
||||
|
||||
@@ -1,5 +1,23 @@
|
||||
# thirdweb
|
||||
|
||||
## 5.86.5
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- [#6072](https://github.com/thirdweb-dev/js/pull/6072) [`2cebb42`](https://github.com/thirdweb-dev/js/commit/2cebb420e6a381cf41a48e17762f6c655ebe7d8c) Thanks [@joaquim-verges](https://github.com/joaquim-verges)! - Fix showing link profiles for ecosystem smart wallets
|
||||
|
||||
## 5.86.4
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- [#6068](https://github.com/thirdweb-dev/js/pull/6068) [`6c277ae`](https://github.com/thirdweb-dev/js/commit/6c277ae6764dbf1a9218fbd5d278ffb5e3dbde1f) Thanks [@joaquim-verges](https://github.com/joaquim-verges)! - Respect passed in chain when connecting to inapp wallet with wallet strategy
|
||||
|
||||
## 5.86.3
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- [#6057](https://github.com/thirdweb-dev/js/pull/6057) [`b6f189c`](https://github.com/thirdweb-dev/js/commit/b6f189c22023154ca3d1db92721b5e2e50b83e94) Thanks [@joaquim-verges](https://github.com/joaquim-verges)! - Updated dependencies
|
||||
|
||||
## 5.86.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "thirdweb",
|
||||
"version": "5.86.2",
|
||||
"version": "5.86.5",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/thirdweb-dev/js.git#main"
|
||||
@@ -228,7 +228,7 @@
|
||||
"mipd": "0.0.7",
|
||||
"ox": "0.4.2",
|
||||
"uqr": "0.1.2",
|
||||
"viem": "2.21.55"
|
||||
"viem": "2.22.15"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@aws-sdk/client-lambda": "^3",
|
||||
|
||||
@@ -19,6 +19,7 @@ import { getRpcClient } from "../rpc/rpc.js";
|
||||
import { estimateGas } from "../transaction/actions/estimate-gas.js";
|
||||
import { sendTransaction } from "../transaction/actions/send-transaction.js";
|
||||
import { prepareTransaction } from "../transaction/prepare-transaction.js";
|
||||
import { getAddress } from "../utils/address.js";
|
||||
import type { Account } from "../wallets/interfaces/wallet.js";
|
||||
|
||||
/**
|
||||
@@ -201,7 +202,7 @@ export async function toViemContract<const TAbi extends Abi>(options: {
|
||||
thirdwebContract: ThirdwebContract<TAbi>;
|
||||
}): Promise<GetContractReturnType<TAbi>> {
|
||||
return {
|
||||
address: options.thirdwebContract.address,
|
||||
address: getAddress(options.thirdwebContract.address),
|
||||
abi: await resolveContractAbi(options.thirdwebContract),
|
||||
};
|
||||
}
|
||||
@@ -310,7 +311,7 @@ function toViemWalletClient(options: ToViemWalletClientOptions): WalletClient {
|
||||
|
||||
return createWalletClient({
|
||||
transport,
|
||||
account: account.address,
|
||||
account: getAddress(account.address),
|
||||
chain: viemChain,
|
||||
key: "thirdweb-wallet",
|
||||
});
|
||||
|
||||
@@ -9,6 +9,7 @@ import { type ThirdwebContract, getContract } from "../contract/contract.js";
|
||||
import { isValidSignature } from "../extensions/erc1271/__generated__/isValidSignature/read/isValidSignature.js";
|
||||
import { eth_call } from "../rpc/actions/eth_call.js";
|
||||
import { getRpcClient } from "../rpc/rpc.js";
|
||||
import type { Address } from "../utils/address.js";
|
||||
import { isZkSyncChain } from "../utils/any-evm/zksync/isZkSyncChain.js";
|
||||
import { isContractDeployed } from "../utils/bytecode/is-contract-deployed.js";
|
||||
import { fromBytes } from "../utils/encoding/from-bytes.js";
|
||||
@@ -27,7 +28,8 @@ export type VerifyHashParams = {
|
||||
};
|
||||
};
|
||||
|
||||
const ZKSYNC_VALIDATOR_ADDRESS = "0xfB688330379976DA81eB64Fe4BF50d7401763B9C";
|
||||
const ZKSYNC_VALIDATOR_ADDRESS: Address =
|
||||
"0xfB688330379976DA81eB64Fe4BF50d7401763B9C";
|
||||
|
||||
/**
|
||||
* @description Verify that an address created the provided signature for a given hash using [ERC-6492](https://eips.ethereum.org/EIPS/eip-6492). This function is interoperable with all wallet types, including EOAs.
|
||||
@@ -120,7 +122,7 @@ export async function verifyHash({
|
||||
})();
|
||||
|
||||
let verificationData: {
|
||||
to?: string;
|
||||
to?: Address;
|
||||
data: Hex;
|
||||
};
|
||||
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
import { defineChain } from "../utils.js";
|
||||
|
||||
/**
|
||||
* @chain
|
||||
*/
|
||||
export const abstract = /* @__PURE__ */ defineChain({
|
||||
id: 2741,
|
||||
name: "Abstract",
|
||||
nativeCurrency: { name: "Ether", symbol: "ETH", decimals: 18 },
|
||||
blockExplorers: [
|
||||
{
|
||||
name: "Abstract Block Explorer",
|
||||
url: "https://explorer.abs.xyz",
|
||||
},
|
||||
],
|
||||
});
|
||||
@@ -1,10 +1,9 @@
|
||||
import type { Abi } from "abitype";
|
||||
import { eth_getCode } from "../../rpc/actions/eth_getCode.js";
|
||||
import { getRpcClient } from "../../rpc/rpc.js";
|
||||
import type { Hex } from "../../utils/encoding/hex.js";
|
||||
import type { ThirdwebContract } from "../contract.js";
|
||||
|
||||
const BYTECODE_CACHE = new WeakMap<ThirdwebContract<Abi>, Promise<Hex>>();
|
||||
const BYTECODE_CACHE = new WeakMap<ThirdwebContract, Promise<Hex>>();
|
||||
|
||||
/**
|
||||
* Retrieves the bytecode of a contract.
|
||||
@@ -17,9 +16,7 @@ const BYTECODE_CACHE = new WeakMap<ThirdwebContract<Abi>, Promise<Hex>>();
|
||||
* ```
|
||||
* @contract
|
||||
*/
|
||||
export function getBytecode<abi extends Abi>(
|
||||
contract: ThirdwebContract<abi>,
|
||||
): Promise<Hex> {
|
||||
export function getBytecode(contract: ThirdwebContract): Promise<Hex> {
|
||||
if (BYTECODE_CACHE.has(contract)) {
|
||||
return BYTECODE_CACHE.get(contract) as Promise<Hex>;
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { type Abi, formatAbi, parseAbi } from "abitype";
|
||||
import { download } from "../../storage/download.js";
|
||||
import { getClientFetch } from "../../utils/fetch.js";
|
||||
import type { ThirdwebContract } from "../contract.js";
|
||||
import { type ThirdwebContract, getContract } from "../contract.js";
|
||||
|
||||
const ABI_RESOLUTION_CACHE = new WeakMap<ThirdwebContract<Abi>, Promise<Abi>>();
|
||||
|
||||
@@ -419,10 +419,10 @@ async function getAbisForPlugins(
|
||||
): Promise<Abi[]> {
|
||||
return Promise.all(
|
||||
options.plugins.map((pluginAddress) => {
|
||||
const newContract = {
|
||||
const newContract = getContract({
|
||||
...options.contract,
|
||||
address: pluginAddress,
|
||||
};
|
||||
});
|
||||
// if we have a method passed in that tells us how to resove the sub-api, use that
|
||||
if (options.resolveSubAbi) {
|
||||
return options.resolveSubAbi(newContract);
|
||||
|
||||
@@ -21,7 +21,7 @@ export type ContractOptions<
|
||||
*/
|
||||
export type ThirdwebContract<
|
||||
abi extends Abi = [],
|
||||
address extends string = string,
|
||||
address extends string = `0x${string}`,
|
||||
> = Readonly<ContractOptions<abi, address>>;
|
||||
|
||||
/**
|
||||
|
||||
@@ -50,11 +50,13 @@ export async function zkDeployContractDeterministic(
|
||||
create2FactoryAddress,
|
||||
salt: options.salt,
|
||||
});
|
||||
const deployed = await isContractDeployed({
|
||||
address: predictedAddress,
|
||||
chain: options.chain,
|
||||
client: options.client,
|
||||
});
|
||||
const deployed = await isContractDeployed(
|
||||
getContract({
|
||||
address: predictedAddress,
|
||||
chain: options.chain,
|
||||
client: options.client,
|
||||
}),
|
||||
);
|
||||
if (!deployed) {
|
||||
// check if bytecodehash is known
|
||||
const knownCodesStorageContract = getContract({
|
||||
|
||||
@@ -8,7 +8,7 @@ import { isContractDeployed } from "../../../utils/bytecode/is-contract-deployed
|
||||
import { resolvePromisedValue } from "../../../utils/promise/resolve-promised-value.js";
|
||||
import { randomBytesHex } from "../../../utils/random.js";
|
||||
import type { ClientAndChainAndAccount } from "../../../utils/types.js";
|
||||
import type { ThirdwebContract } from "../../contract.js";
|
||||
import { type ThirdwebContract, getContract } from "../../contract.js";
|
||||
import { zkDeployContractDeterministic } from "./zkDeployDeterministic.js";
|
||||
|
||||
/**
|
||||
@@ -28,11 +28,13 @@ export async function zkDeployProxy(
|
||||
if (!implementationAddress) {
|
||||
throw new Error("initializeTransaction must have a 'to' field set");
|
||||
}
|
||||
const deployed = await isContractDeployed({
|
||||
address: implementationAddress,
|
||||
chain: options.chain,
|
||||
client: options.client,
|
||||
});
|
||||
const deployed = await isContractDeployed(
|
||||
getContract({
|
||||
address: implementationAddress,
|
||||
chain: options.chain,
|
||||
client: options.client,
|
||||
}),
|
||||
);
|
||||
if (!deployed) {
|
||||
throw new Error(
|
||||
`Implementation contract at ${implementationAddress} is not deployed`,
|
||||
|
||||
@@ -20,6 +20,7 @@ import {
|
||||
eth_getLogs,
|
||||
} from "../../rpc/actions/eth_getLogs.js";
|
||||
import { getRpcClient } from "../../rpc/rpc.js";
|
||||
import { getAddress } from "../../utils/address.js";
|
||||
import type { Prettify } from "../../utils/type-utils.js";
|
||||
import { type PreparedEvent, prepareEvent } from "../prepare-event.js";
|
||||
import { isAbiEvent } from "../utils.js";
|
||||
@@ -168,11 +169,11 @@ export async function getContractEvents<
|
||||
? // if we have events passed in then we use those
|
||||
events.map((e) => ({
|
||||
...restParams,
|
||||
address: contract?.address,
|
||||
address: getAddress(contract.address),
|
||||
topics: e.topics,
|
||||
}))
|
||||
: // otherwise we want "all" events (aka not pass any topics at all)
|
||||
[{ ...restParams, address: contract?.address }];
|
||||
[{ ...restParams, address: getAddress(contract.address) }];
|
||||
|
||||
const logs = await Promise.all(
|
||||
logsParams.map((ethLogParams) => eth_getLogs(rpcRequest, ethLogParams)),
|
||||
|
||||
@@ -72,6 +72,7 @@ export { frameTestnet } from "../chains/chain-definitions/frame-testnet.js";
|
||||
export { hokumTestnet } from "../chains/chain-definitions/hokum-testnet.js";
|
||||
export { godWokenTestnetV1 } from "../chains/chain-definitions/god-woken-testnet-v1.js";
|
||||
export { abstractTestnet } from "../chains/chain-definitions/abstract-testnet.js";
|
||||
export { abstract } from "../chains/chain-definitions/abstract.js";
|
||||
export { assetChainTestnet } from "../chains/chain-definitions/assetchain-testnet.js";
|
||||
export { celoAlfajoresTestnet } from "../chains/chain-definitions/celo-alfajores-testnet.js";
|
||||
export { fraxtalTestnet } from "../chains/chain-definitions/fraxtal-testnet.js";
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import { getContract } from "../../../contract/contract.js";
|
||||
import type { BaseTransactionOptions } from "../../../transaction/types.js";
|
||||
import { isContractDeployed } from "../../../utils/bytecode/is-contract-deployed.js";
|
||||
import * as PredictAddress from "../__generated__/IAccountFactory/read/getAddress.js";
|
||||
@@ -15,10 +16,10 @@ export {
|
||||
* ```ts
|
||||
* import { isAccountDeployed } from 'thirdweb/extensions/erc4337';
|
||||
*
|
||||
* const transaction = addAdmin({
|
||||
* const isDeployed = await isAccountDeployed({
|
||||
* contract,
|
||||
* account,
|
||||
* adminAddress: '0x...'
|
||||
* adminSigner: '0x...'
|
||||
* });
|
||||
*
|
||||
* await isAccountDeployed({ contract, adminSigner });
|
||||
@@ -29,8 +30,10 @@ export async function isAccountDeployed(
|
||||
options: BaseTransactionOptions<PredictAddress.GetAddressParams>,
|
||||
): Promise<boolean> {
|
||||
const predictedAddress = await PredictAddress.getAddress(options);
|
||||
return isContractDeployed({
|
||||
...options.contract,
|
||||
address: predictedAddress,
|
||||
});
|
||||
return isContractDeployed(
|
||||
getContract({
|
||||
...options.contract,
|
||||
address: predictedAddress,
|
||||
}),
|
||||
);
|
||||
}
|
||||
|
||||
+2
-1
@@ -1,5 +1,6 @@
|
||||
import { encodePacked } from "viem/utils";
|
||||
import type { ThirdwebContract } from "../../../../contract/contract.js";
|
||||
import { getAddress } from "../../../../utils/address.js";
|
||||
import { keccak256 } from "../../../../utils/hashing/keccak256.js";
|
||||
|
||||
/**
|
||||
@@ -15,7 +16,7 @@ export const hashDelayedRevealPassword = async (
|
||||
return keccak256(
|
||||
encodePacked(
|
||||
["string", "uint256", "uint256", "address"],
|
||||
[password, chainId, batchTokenIndex, contractAddress],
|
||||
[password, chainId, batchTokenIndex, getAddress(contractAddress)],
|
||||
),
|
||||
);
|
||||
};
|
||||
|
||||
@@ -11,7 +11,6 @@ export function useAdminWallet() {
|
||||
const activeWallet = useActiveWallet();
|
||||
const connectedWallets = useConnectedWallets();
|
||||
const adminAccount = activeWallet?.getAdminAccount?.();
|
||||
|
||||
if (!adminAccount) {
|
||||
// If the active wallet doesn't have an admin account, return the active wallet
|
||||
return activeWallet;
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
"use client";
|
||||
import { hexToNumber } from "@noble/curves/abstract/utils";
|
||||
import { useId, useMemo } from "react";
|
||||
import type { Address } from "viem";
|
||||
|
||||
const COLOR_OPTIONS = [
|
||||
["#fca5a5", "#b91c1c"],
|
||||
@@ -26,7 +25,7 @@ const COLOR_OPTIONS = [
|
||||
* @component
|
||||
*/
|
||||
export type BlobbieProps = {
|
||||
address: Address;
|
||||
address: string;
|
||||
style?: Omit<React.CSSProperties, "backgroundImage">;
|
||||
className?: string;
|
||||
size?: number;
|
||||
|
||||
@@ -28,7 +28,8 @@ export function ManageWalletScreen(props: {
|
||||
client: ThirdwebClient;
|
||||
manageWallet?: ConnectButton_detailsModalOptions["manageWallet"];
|
||||
}) {
|
||||
const activeWallet = useAdminWallet();
|
||||
const adminWallet = useAdminWallet();
|
||||
const activeWallet = useActiveWallet();
|
||||
|
||||
return (
|
||||
<Container
|
||||
@@ -92,9 +93,9 @@ export function ManageWalletScreen(props: {
|
||||
</MenuButton>
|
||||
|
||||
{/* Private Key Export (if enabled) */}
|
||||
{activeWallet &&
|
||||
isInAppWallet(activeWallet) &&
|
||||
!activeWallet.getConfig()?.hidePrivateKeyExport && (
|
||||
{adminWallet &&
|
||||
isInAppWallet(adminWallet) &&
|
||||
!adminWallet.getConfig()?.hidePrivateKeyExport && (
|
||||
<MenuButton
|
||||
onClick={() => {
|
||||
props.setScreen("private-key");
|
||||
|
||||
@@ -5,9 +5,8 @@ import { WalletProvider } from "./provider.js";
|
||||
|
||||
describe("WalletIcon", () => {
|
||||
it("should fetch wallet image", async () => {
|
||||
expect(await fetchWalletImage({ id: "io.metamask" })).toMatchInlineSnapshot(
|
||||
`"data:image/webp;base64,UklGRuwGAABXRUJQVlA4IOAGAABwIQCdASqAAIAAPm0ylkekIqIhJRM72IANiWIAyqy1Dp/H+eFYv8NxdNKeeg+36Lvzn/wN975hf2w9Y/0Z/6z0a+pI9AD9Vetr8ry8NP1WRg8G/sPM3wJlt8FdNg0WVXrKZlHf/7BcL9ZlCeVp+JF3E1CbwOreB/90YH2PUR9BNzlivRmwiI5jOr6WJ/6RWb6/tZp9UbMeCRrLy+9YP/9AVZ2SFUruL/yoPkhhgYPVhVAyyvDGz6Mws+v8VQ/EqyPSTb1iD4FsNruUD7fVhplslH9Dh2EW3xy9tEeSAgV+QvEpsOf2HAqlW6VT1f2x+lkeGRKeohCDPYvoIBFLKwb4SzsF5l02NiyGaPN5/ODNR9n2EQAA/vsmBY+Q2dsG6yhgBhrmNE7GEK9pn+TE53EQ0+z+NL8/FkVgnO6FJpMGUcFQB9eOfECvyN9rfQD1Wq9X7u4/Bo7ur3bAkxWHl7CY5PlokCXuX4KvTRxdvUS23oUE2yqTSig0oRbBXdOGBXxgy6lUtFznnz+6QWb0rBEPhRqb3zKbmSL0gT4bPNaZew3h07g88/udLRjKmf0ellIolDALYrkbcJ08Y5rQ6E0xGiBrZykNg/xwYdd26p2ipY/vyeAOmddHVnBEbQglFALFMWiqCfov6s3IHwJHyP8s/h/am/pvn1gCbhTrbKI0rIuJXN2sljBDesRrvc9wpJ65o9AligVcUt3mTIDAqYysfF2QJwm3GxApi5svDwSajevWXF4z4IWOhVNDdQNKpl0+R0HUoK5n1cpWHRDrx31Hfh1SY5l/hqMOstkei+rznVXW+Ffl16KssbyiUCXQOwW4F6N00fiShJety//jfyqXXJNiY4n1xf77cqf1Z3Kq/Dnj5DKbwQ2XczShuDEsphJyn6FjFSP1e70n7d6aNp13xF9IfSa08mHGlS/jAguPwUJKwm4tly2eq+sBYDbDEkLHFKA75Y4cMSqK6+9OfNllq385/NTeOdCOGGrXAaoytxd2m1VE5dEh9lExaPxwfWhxTRD8ByR5GWe/3WMXlm6+oArrYTPKYAANBM4wAY7MPqaQzcV9rqtD+m0u22u4rdNKn1NMgoAWrlILvjQ3qqt27p32L2wf546/nQuDwGrFg+npvAMTX52Xl0SlpACvq8NqcdCKe/EWl5PfcBnKnO6JuQIEXlNWf6VLiv0VqKdwLAd96LPbBnZgbX5uX5p3GEb18QUcOFu9kMWg67HjQvmefds+kBxGh3rO/W/jFB/q67+kEKrutCcknGtEECtPBN5TIsVdn4dS/IH3DYC4HsgD09hGplPhFL99N/MXiZYbXFPYfl9H1ybPma4yljEjieZZdcHU+rncZxDm5ZgWuSTvgrgWuwzf6pHdQQVrFxhG+5PVW/IThXF50K1/g/xrcQHXOF8WvZ2Zxg9oQSPR0ArfJ8dAungVGomI9E3EIvGw9VdfiyUR0pCe+4q40mLqMoRdRplXACBrvUk1HTbqlsNYN0ElDxBW3q9Is/YDcJRWOJ3JtSxfN4yr7KY2vmgiJq04ta+fv8jDzXq35feu2ur2lYrfzHd02NaJo7W2pUyvoxCLpSM1cxr1E40s3u2ONRfn+r0r1/BpZJe0bgTwEb4I02KQak7Pl4yS1ZHwOn36HVfTrVpSc9zgG1yNOPQ4kCB6GSIZVxArMdQPKstj20YXj/i0Ra3SO7fx/14WvSIIIyNYsXbJXg8PL8fQfv9QjORNqjukfZbgusqnM8geR0pQhDfeZR1ZwdUQfx9a4Z0/fBR2Rg5zq05CcnuygEL6SZsWFBHSOeaUT3ycQQp2rHbHlnYT/GOaoUYR5wtGBahqXy0xBlaisNqZa6GEoHxzNKiMt2sGrcS079jZa5kDaGtSrW41e1HoLpuxwxiUKntwnjEaogJri9FgAxC6wazG6U56P6C/zJWsilWgi6jCsfORkpXQM91vYMgRL3+HiFzD93LPP13w/x8Hhty4jtCowlCzf0MqrScu+oDOCoMbdXV9j0OCfAZYXHdf9R1hgLmFjBk0kOl8O8HZucC6eUve6XVrJ/92ne39q3XC8uJ86jEyTYpzJOSzAbLiP8jSgLetO3pxmTa43aS527rhvZ8JL5yAffh+31QM7yH5z7OCSLeVOGJlwXqhF7scYXy5kaJdg93oEYrUhpHMTh3KV9Ex0Qf4/M7ucWrOpBR6AjyIGlvU92DbSj/ggL5w4N4wHUCOflgeum/BI6G33QdKXXJiebFiJIjyiYk4NPu4R2LxJkK7hMBIka6NtNFZCkGHgF/Dlwx36B0nZFYvHt1ciHu2IKWOpl9AdQeQo0jWiBOpElR7LhlhAHUTnP2S2VxoQCAAAA=="`,
|
||||
);
|
||||
const image = await fetchWalletImage({ id: "io.metamask" });
|
||||
expect(image).toContain("data:image/");
|
||||
});
|
||||
|
||||
it("should throw error if WalletId is not supported", async () => {
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import type { Address } from "abitype";
|
||||
import {
|
||||
type BlockNumber,
|
||||
type BlockTag,
|
||||
@@ -9,6 +8,7 @@ import {
|
||||
type RpcLog,
|
||||
formatLog,
|
||||
} from "viem";
|
||||
import { type Address, getAddress } from "../../utils/address.js";
|
||||
import { numberToHex } from "../../utils/encoding/hex.js";
|
||||
|
||||
export type GetLogsBlockParams =
|
||||
@@ -75,7 +75,7 @@ export async function eth_getLogs(
|
||||
// in the case we have a blockHash
|
||||
if (params.blockHash) {
|
||||
const param: {
|
||||
address?: string | string[];
|
||||
address?: Address | Address[];
|
||||
topics: LogTopic[];
|
||||
blockHash: `0x${string}`;
|
||||
} = {
|
||||
@@ -83,7 +83,7 @@ export async function eth_getLogs(
|
||||
blockHash: params.blockHash,
|
||||
};
|
||||
if (params.address) {
|
||||
param.address = params.address;
|
||||
param.address = getAddress(params.address);
|
||||
}
|
||||
logs = await request({
|
||||
method: "eth_getLogs",
|
||||
@@ -93,7 +93,7 @@ export async function eth_getLogs(
|
||||
// otherwise
|
||||
else {
|
||||
const param: {
|
||||
address?: string | string[];
|
||||
address?: Address | Address[];
|
||||
topics?: LogTopic[];
|
||||
} & (
|
||||
| {
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import type { BlockTag, EIP1193RequestFn, EIP1474Methods, Hex } from "viem";
|
||||
import { getAddress } from "../../utils/address.js";
|
||||
|
||||
type GetStorageAtParams = {
|
||||
address: string;
|
||||
@@ -28,6 +29,10 @@ export async function eth_getStorageAt(
|
||||
): Promise<Hex> {
|
||||
return await request({
|
||||
method: "eth_getStorageAt",
|
||||
params: [params.address, params.position, params.blockTag ?? "latest"],
|
||||
params: [
|
||||
getAddress(params.address),
|
||||
params.position,
|
||||
params.blockTag ?? "latest",
|
||||
],
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import * as ox__Hex from "ox/Hex";
|
||||
import { formatTransactionRequest } from "viem";
|
||||
import { roundUpGas } from "../../gas/op-gas-fee-reducer.js";
|
||||
import { getAddress } from "../../utils/address.js";
|
||||
import { resolvePromisedValue } from "../../utils/promise/resolve-promised-value.js";
|
||||
import type { Prettify } from "../../utils/type-utils.js";
|
||||
import type { Account } from "../../wallets/interfaces/wallet.js";
|
||||
@@ -117,9 +118,9 @@ export async function estimateGas(
|
||||
let gas = await eth_estimateGas(
|
||||
rpcRequest,
|
||||
formatTransactionRequest({
|
||||
to: toAddress,
|
||||
to: toAddress ? getAddress(toAddress) : undefined,
|
||||
data: encodedData,
|
||||
from: fromAddress,
|
||||
from: fromAddress ? getAddress(fromAddress) : undefined,
|
||||
value,
|
||||
// TODO: Remove this casting when we migrate this file to Ox
|
||||
authorizationList: authorizationList?.map((auth) => ({
|
||||
@@ -127,7 +128,7 @@ export async function estimateGas(
|
||||
r: ox__Hex.fromNumber(auth.r),
|
||||
s: ox__Hex.fromNumber(auth.s),
|
||||
nonce: Number(auth.nonce),
|
||||
contractAddress: auth.address,
|
||||
contractAddress: getAddress(auth.address),
|
||||
})),
|
||||
}),
|
||||
);
|
||||
|
||||
@@ -2,6 +2,7 @@ import type { Address } from "abitype";
|
||||
import { encodeAbiParameters } from "viem";
|
||||
import { ZERO_ADDRESS } from "../../../../constants/addresses.js";
|
||||
import { getContract } from "../../../../contract/contract.js";
|
||||
import { getAddress } from "../../../../utils/address.js";
|
||||
import { isHex } from "../../../../utils/encoding/helpers/is-hex.js";
|
||||
import { keccak256 } from "../../../../utils/hashing/keccak256.js";
|
||||
import { stringify } from "../../../../utils/json.js";
|
||||
@@ -95,9 +96,9 @@ export async function prepareBiconomyTransaction({
|
||||
{ type: "bytes32" },
|
||||
],
|
||||
[
|
||||
request.from,
|
||||
request.to,
|
||||
request.token,
|
||||
getAddress(request.from),
|
||||
getAddress(request.to),
|
||||
getAddress(request.token),
|
||||
request.txGas,
|
||||
request.tokenGasPrice,
|
||||
request.batchId,
|
||||
|
||||
@@ -3,6 +3,7 @@ import { decodeAbiParameters, formatTransactionRequest } from "viem";
|
||||
import { eth_call } from "../../rpc/actions/eth_call.js";
|
||||
import { getRpcClient } from "../../rpc/rpc.js";
|
||||
import type { PreparedMethod } from "../../utils/abi/prepare-method.js";
|
||||
import { getAddress } from "../../utils/address.js";
|
||||
import { resolvePromisedValue } from "../../utils/promise/resolve-promised-value.js";
|
||||
import type { Prettify } from "../../utils/type-utils.js";
|
||||
import type { Account } from "../../wallets/interfaces/wallet.js";
|
||||
@@ -61,8 +62,8 @@ export async function simulateTransaction<
|
||||
|
||||
const serializedTx = formatTransactionRequest({
|
||||
data,
|
||||
from,
|
||||
to,
|
||||
from: from ? getAddress(from) : undefined,
|
||||
to: to ? getAddress(to) : undefined,
|
||||
value,
|
||||
accessList,
|
||||
});
|
||||
|
||||
@@ -91,7 +91,10 @@ export async function toSerializableTransaction(
|
||||
? await import("../../rpc/actions/eth_getTransactionCount.js").then(
|
||||
({ eth_getTransactionCount }) =>
|
||||
eth_getTransactionCount(rpcRequest, {
|
||||
address: typeof from === "string" ? from : from?.address,
|
||||
address:
|
||||
typeof from === "string"
|
||||
? getAddress(from)
|
||||
: getAddress(from.address),
|
||||
blockTag: "pending",
|
||||
}),
|
||||
)
|
||||
|
||||
@@ -24,6 +24,7 @@ import {
|
||||
type PreparedMethod,
|
||||
prepareMethod,
|
||||
} from "../utils/abi/prepare-method.js";
|
||||
import { getAddress } from "../utils/address.js";
|
||||
import type { Hex } from "../utils/encoding/hex.js";
|
||||
|
||||
export type ReadContractResult<outputs extends readonly AbiParameter[]> = // if the outputs are 0 length, return never, invalid case
|
||||
@@ -214,7 +215,7 @@ export async function readContract<
|
||||
const result = await eth_call(rpcRequest, {
|
||||
data: encodedData,
|
||||
to: contract.address,
|
||||
from: options.from,
|
||||
from: options.from ? getAddress(options.from) : undefined,
|
||||
});
|
||||
// use the prepared method to decode the result
|
||||
const decoded = decodeAbiParameters(resolvedPreparedMethod[2], result);
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { type Hex, encodePacked } from "viem";
|
||||
import { getAddress } from "../address.js";
|
||||
import { ensureBytecodePrefix } from "../bytecode/prefix.js";
|
||||
import { keccak256 } from "../hashing/keccak256.js";
|
||||
import { getSaltHash } from "./get-salt-hash.js";
|
||||
@@ -46,7 +47,7 @@ export function computeDeploymentAddress(
|
||||
["bytes1", "address", "bytes32", "bytes32"],
|
||||
[
|
||||
"0xff",
|
||||
options.create2FactoryAddress,
|
||||
getAddress(options.create2FactoryAddress),
|
||||
saltHash,
|
||||
keccak256(encodePacked(["bytes"], [initBytecode])),
|
||||
],
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { getBytecode } from "../../contract/actions/get-bytecode.js";
|
||||
import type { ThirdwebContract } from "../../contract/contract.js";
|
||||
import { type ThirdwebContract, getContract } from "../../contract/contract.js";
|
||||
import { eth_getStorageAt } from "../../rpc/actions/eth_getStorageAt.js";
|
||||
import { getRpcClient } from "../../rpc/rpc.js";
|
||||
import { readContract } from "../../transaction/read-contract.js";
|
||||
@@ -37,10 +37,12 @@ export async function resolveImplementation(
|
||||
if (minimalProxyImplementationAddress) {
|
||||
return {
|
||||
address: minimalProxyImplementationAddress,
|
||||
bytecode: await getBytecode({
|
||||
...contract,
|
||||
address: minimalProxyImplementationAddress,
|
||||
}),
|
||||
bytecode: await getBytecode(
|
||||
getContract({
|
||||
...contract,
|
||||
address: minimalProxyImplementationAddress,
|
||||
}),
|
||||
),
|
||||
};
|
||||
}
|
||||
|
||||
@@ -50,7 +52,10 @@ export async function resolveImplementation(
|
||||
// In case of a BeaconProxy, it is setup as BeaconProxy --> Beacon --> Implementation
|
||||
// Hence we replace the proxy address with Beacon address, and continue further resolving below
|
||||
// biome-ignore lint/style/noParameterAssign: we purposefully mutate the contract object here
|
||||
contract = { ...contract, address: beacon };
|
||||
contract = getContract({
|
||||
...contract,
|
||||
address: beacon,
|
||||
});
|
||||
|
||||
implementationAddress = await getImplementationFromContractCall(contract);
|
||||
} else {
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { encodePacked } from "viem";
|
||||
import { getAddress } from "../../address.js";
|
||||
import { keccak256 } from "../../hashing/keccak256.js";
|
||||
import type { SnapshotEntryERC1155 } from "./types.js";
|
||||
|
||||
@@ -9,7 +10,7 @@ export async function hashEntryERC1155(options: {
|
||||
encodePacked(
|
||||
["address", "uint256", "uint256"],
|
||||
[
|
||||
options.entry.recipient,
|
||||
getAddress(options.entry.recipient),
|
||||
BigInt(options.entry.tokenId),
|
||||
BigInt(options.entry.amount),
|
||||
],
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { encodePacked } from "viem";
|
||||
import { getAddress } from "../../address.js";
|
||||
import { keccak256 } from "../../hashing/keccak256.js";
|
||||
import { toUnits } from "../../units.js";
|
||||
import type { SnapshotEntryERC20 } from "./types.js";
|
||||
@@ -13,7 +14,7 @@ export async function hashEntryERC20(options: {
|
||||
encodePacked(
|
||||
["address", "uint256"],
|
||||
[
|
||||
options.entry.recipient,
|
||||
getAddress(options.entry.recipient),
|
||||
convertQuantity({
|
||||
quantity: options.entry.amount.toString(),
|
||||
tokenDecimals: decimals,
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { encodePacked } from "viem";
|
||||
import { getAddress } from "../../address.js";
|
||||
import { keccak256 } from "../../hashing/keccak256.js";
|
||||
import type { SnapshotEntryERC721 } from "./types.js";
|
||||
|
||||
@@ -6,7 +7,7 @@ export async function hashEntryERC721(options: { entry: SnapshotEntryERC721 }) {
|
||||
return keccak256(
|
||||
encodePacked(
|
||||
["address", "uint256"],
|
||||
[options.entry.recipient, BigInt(options.entry.tokenId)],
|
||||
[getAddress(options.entry.recipient), BigInt(options.entry.tokenId)],
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ import {
|
||||
ZERO_ADDRESS,
|
||||
isNativeTokenAddress,
|
||||
} from "../../../constants/addresses.js";
|
||||
import { getAddress } from "../../address.js";
|
||||
import { keccak256 } from "../../hashing/keccak256.js";
|
||||
import { convertQuantity } from "./convert-quantity.js";
|
||||
import type { OverrideEntry } from "./types.js";
|
||||
@@ -39,7 +40,7 @@ export async function hashEntry(options: {
|
||||
encodePacked(
|
||||
["address", "uint256", "uint256", "address"],
|
||||
[
|
||||
options.entry.address,
|
||||
getAddress(options.entry.address),
|
||||
convertQuantity({
|
||||
quantity: options.entry.maxClaimable || "unlimited",
|
||||
tokenDecimals: options.tokenDecimals,
|
||||
@@ -48,7 +49,7 @@ export async function hashEntry(options: {
|
||||
quantity: options.entry.price || "unlimited",
|
||||
tokenDecimals: currencyDecimals,
|
||||
}),
|
||||
currencyAddress,
|
||||
getAddress(currencyAddress),
|
||||
],
|
||||
),
|
||||
);
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import { getAddress } from "../../utils/address.js";
|
||||
import type { Prettify } from "../../utils/type-utils.js";
|
||||
import { isCoinbaseSDKWallet } from "../coinbase/coinbase-web.js";
|
||||
import { isInAppWallet } from "../in-app/core/wallet/index.js";
|
||||
@@ -80,7 +81,7 @@ export async function getCapabilities<const ID extends WalletId = WalletId>({
|
||||
try {
|
||||
return await provider.request({
|
||||
method: "wallet_getCapabilities",
|
||||
params: [account.address],
|
||||
params: [getAddress(account.address)],
|
||||
});
|
||||
} catch (error: unknown) {
|
||||
if (/unsupport|not support|not available/i.test((error as Error).message)) {
|
||||
|
||||
@@ -18,11 +18,11 @@ export async function siweAuthenticate(args: {
|
||||
client: ThirdwebClient;
|
||||
ecosystem?: Ecosystem;
|
||||
}): Promise<AuthStoredTokenWithCookieReturnType> {
|
||||
const { wallet, chain } = args;
|
||||
const { wallet, chain, client, ecosystem } = args;
|
||||
// only connect if the wallet doesn't already have an account
|
||||
const account =
|
||||
wallet.getAccount() || (await wallet.connect({ client: args.client }));
|
||||
const clientFetch = getClientFetch(args.client, args.ecosystem);
|
||||
wallet.getAccount() || (await wallet.connect({ client, chain }));
|
||||
const clientFetch = getClientFetch(client, ecosystem);
|
||||
|
||||
const payload = await (async () => {
|
||||
const path = getLoginUrl({
|
||||
|
||||
@@ -154,7 +154,7 @@ export class EnclaveWallet implements IWebWallet {
|
||||
"../../../../rpc/actions/eth_getTransactionCount.js"
|
||||
).then(({ eth_getTransactionCount }) =>
|
||||
eth_getTransactionCount(rpcRequest, {
|
||||
address: this.address,
|
||||
address: getAddress(this.address),
|
||||
blockTag: "pending",
|
||||
}),
|
||||
),
|
||||
|
||||
@@ -234,7 +234,7 @@ function createAccount({
|
||||
|
||||
return await provider.request({
|
||||
method: "personal_sign",
|
||||
params: [messageToSign, account.address],
|
||||
params: [messageToSign, getAddress(account.address)],
|
||||
});
|
||||
},
|
||||
async signTypedData(typedData) {
|
||||
@@ -264,7 +264,7 @@ function createAccount({
|
||||
|
||||
return await provider.request({
|
||||
method: "eth_signTypedData_v4",
|
||||
params: [account.address, stringifiedData],
|
||||
params: [getAddress(account.address), stringifiedData],
|
||||
});
|
||||
},
|
||||
async watchAsset(asset) {
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
# @thirdweb-dev/wagmi-adapter
|
||||
|
||||
## 0.2.5
|
||||
|
||||
## 0.2.4
|
||||
|
||||
## 0.2.3
|
||||
|
||||
## 0.2.2
|
||||
|
||||
## 0.2.1
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@thirdweb-dev/wagmi-adapter",
|
||||
"version": "0.2.2",
|
||||
"version": "0.2.5",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/thirdweb-dev/js.git#main"
|
||||
|
||||
Generated
+196
-215
@@ -135,7 +135,7 @@ importers:
|
||||
version: 1.1.5(@types/[email protected](@types/[email protected]))(@types/[email protected])([email protected]([email protected]))([email protected])
|
||||
'@sentry/nextjs':
|
||||
specifier: 8.45.1
|
||||
version: 8.45.1(@opentelemetry/[email protected](@opentelemetry/[email protected]))(@opentelemetry/[email protected](@opentelemetry/[email protected]))(@opentelemetry/[email protected](@opentelemetry/[email protected]))([email protected])([email protected].3(@babel/[email protected])(@opentelemetry/[email protected])(@playwright/[email protected])([email protected]([email protected]))([email protected]))([email protected])([email protected](@swc/[email protected](@swc/[email protected]))([email protected]))
|
||||
version: 8.45.1(@opentelemetry/[email protected](@opentelemetry/[email protected]))(@opentelemetry/[email protected](@opentelemetry/[email protected]))(@opentelemetry/[email protected](@opentelemetry/[email protected]))([email protected])([email protected].4(@babel/[email protected])(@opentelemetry/[email protected])(@playwright/[email protected])([email protected]([email protected]))([email protected]))([email protected])([email protected](@swc/[email protected](@swc/[email protected]))([email protected]))
|
||||
'@shazow/whatsabi':
|
||||
specifier: ^0.18.0
|
||||
version: 0.18.0(@noble/[email protected])([email protected])([email protected])
|
||||
@@ -200,17 +200,17 @@ importers:
|
||||
specifier: 0.468.0
|
||||
version: 0.468.0([email protected])
|
||||
next:
|
||||
specifier: 15.1.3
|
||||
version: 15.1.3(@babel/[email protected])(@opentelemetry/[email protected])(@playwright/[email protected])([email protected]([email protected]))([email protected])
|
||||
specifier: 15.1.4
|
||||
version: 15.1.4(@babel/[email protected])(@opentelemetry/[email protected])(@playwright/[email protected])([email protected]([email protected]))([email protected])
|
||||
next-plausible:
|
||||
specifier: ^3.12.4
|
||||
version: 3.12.4([email protected].3(@babel/[email protected])(@opentelemetry/[email protected])(@playwright/[email protected])([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected])
|
||||
version: 3.12.4([email protected].4(@babel/[email protected])(@opentelemetry/[email protected])(@playwright/[email protected])([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected])
|
||||
next-themes:
|
||||
specifier: ^0.4.4
|
||||
version: 0.4.4([email protected]([email protected]))([email protected])
|
||||
nextjs-toploader:
|
||||
specifier: ^1.6.12
|
||||
version: 1.6.12([email protected].3(@opentelemetry/[email protected])(@playwright/[email protected])([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected])
|
||||
version: 1.6.12([email protected].4(@opentelemetry/[email protected])(@playwright/[email protected])([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected])
|
||||
openapi-types:
|
||||
specifier: ^12.1.3
|
||||
version: 12.1.3
|
||||
@@ -303,11 +303,11 @@ importers:
|
||||
specifier: 3.2.2
|
||||
version: 3.2.2([email protected])([email protected]([email protected])([email protected])([email protected]))
|
||||
'@next/bundle-analyzer':
|
||||
specifier: 15.1.0
|
||||
version: 15.1.0([email protected])([email protected])
|
||||
specifier: 15.1.4
|
||||
version: 15.1.4([email protected])([email protected])
|
||||
'@next/eslint-plugin-next':
|
||||
specifier: 15.1.3
|
||||
version: 15.1.3
|
||||
specifier: 15.1.4
|
||||
version: 15.1.4
|
||||
'@playwright/test':
|
||||
specifier: 1.49.1
|
||||
version: 1.49.1
|
||||
@@ -331,7 +331,7 @@ importers:
|
||||
version: 8.4.7([email protected]([email protected]))([email protected])([email protected]([email protected])([email protected])([email protected]))
|
||||
'@storybook/nextjs':
|
||||
specifier: 8.4.7
|
||||
version: 8.4.7(@swc/[email protected](@swc/[email protected]))([email protected])([email protected].3(@babel/[email protected])(@opentelemetry/[email protected])(@playwright/[email protected])([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected])([email protected]([email protected])([email protected])([email protected]))([email protected])([email protected])([email protected])([email protected](@swc/[email protected](@swc/[email protected]))([email protected]))
|
||||
version: 8.4.7(@swc/[email protected](@swc/[email protected]))([email protected])([email protected].4(@babel/[email protected])(@opentelemetry/[email protected])(@playwright/[email protected])([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected])([email protected]([email protected])([email protected])([email protected]))([email protected])([email protected])([email protected])([email protected](@swc/[email protected](@swc/[email protected]))([email protected]))
|
||||
'@storybook/react':
|
||||
specifier: 8.5.0
|
||||
version: 8.5.0(@storybook/[email protected]([email protected]([email protected])([email protected])([email protected])))([email protected]([email protected]))([email protected])([email protected]([email protected])([email protected])([email protected]))([email protected])
|
||||
@@ -397,7 +397,7 @@ importers:
|
||||
version: 5.41.0(@types/[email protected])([email protected])
|
||||
next-sitemap:
|
||||
specifier: ^4.2.3
|
||||
version: 4.2.3([email protected].3(@opentelemetry/[email protected])(@playwright/[email protected])([email protected]([email protected]))([email protected]))
|
||||
version: 4.2.3([email protected].4(@opentelemetry/[email protected])(@playwright/[email protected])([email protected]([email protected]))([email protected]))
|
||||
postcss:
|
||||
specifier: 8.4.49
|
||||
version: 8.4.49
|
||||
@@ -414,11 +414,11 @@ importers:
|
||||
apps/playground-web:
|
||||
dependencies:
|
||||
'@abstract-foundation/agw-client':
|
||||
specifier: ^1.0.1
|
||||
version: 1.0.1([email protected].7([email protected])([email protected]))([email protected])([email protected]1.55([email protected])([email protected])([email protected])([email protected]))
|
||||
specifier: ^1.3.0
|
||||
version: 1.3.0([email protected].8([email protected])([email protected]))([email protected])([email protected]2.15([email protected])([email protected])([email protected])([email protected]))
|
||||
'@abstract-foundation/agw-react':
|
||||
specifier: ^1.0.1
|
||||
version: 1.0.1(tbp7y4vdr4g6hzh7wwqlc5erca)
|
||||
specifier: ^1.4.1
|
||||
version: 1.4.1(ps632aoqsqso3jaq3xeoigleqq)
|
||||
'@radix-ui/react-accordion':
|
||||
specifier: ^1.2.2
|
||||
version: 1.2.2(@types/[email protected](@types/[email protected]))(@types/[email protected])([email protected]([email protected]))([email protected])
|
||||
@@ -477,8 +477,8 @@ importers:
|
||||
specifier: 0.468.0
|
||||
version: 0.468.0([email protected])
|
||||
next:
|
||||
specifier: 15.1.3
|
||||
version: 15.1.3(@babel/[email protected])(@opentelemetry/[email protected])(@playwright/[email protected])([email protected]([email protected]))([email protected])
|
||||
specifier: 15.1.4
|
||||
version: 15.1.4(@babel/[email protected])(@opentelemetry/[email protected])(@playwright/[email protected])([email protected]([email protected]))([email protected])
|
||||
next-themes:
|
||||
specifier: ^0.4.4
|
||||
version: 0.4.4([email protected]([email protected]))([email protected])
|
||||
@@ -556,8 +556,8 @@ importers:
|
||||
specifier: ^2.3.0
|
||||
version: 2.3.0([email protected])
|
||||
'@next/mdx':
|
||||
specifier: 15.1.0
|
||||
version: 15.1.0(@mdx-js/[email protected]([email protected](@swc/[email protected](@swc/[email protected]))))(@mdx-js/[email protected]([email protected]))
|
||||
specifier: 15.1.4
|
||||
version: 15.1.4(@mdx-js/[email protected]([email protected](@swc/[email protected](@swc/[email protected]))))(@mdx-js/[email protected]([email protected]))
|
||||
'@radix-ui/react-dialog':
|
||||
specifier: 1.1.4
|
||||
version: 1.1.4(@types/[email protected](@types/[email protected]))(@types/[email protected])([email protected]([email protected]))([email protected])
|
||||
@@ -598,11 +598,11 @@ importers:
|
||||
specifier: 0.468.0
|
||||
version: 0.468.0([email protected])
|
||||
next:
|
||||
specifier: 15.1.3
|
||||
version: 15.1.3(@babel/[email protected])(@opentelemetry/[email protected])(@playwright/[email protected])([email protected]([email protected]))([email protected])
|
||||
specifier: 15.1.4
|
||||
version: 15.1.4(@babel/[email protected])(@opentelemetry/[email protected])(@playwright/[email protected])([email protected]([email protected]))([email protected])
|
||||
nextjs-toploader:
|
||||
specifier: ^1.6.12
|
||||
version: 1.6.12([email protected].3(@opentelemetry/[email protected])(@playwright/[email protected])([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected])
|
||||
version: 1.6.12([email protected].4(@opentelemetry/[email protected])(@playwright/[email protected])([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected])
|
||||
node-html-parser:
|
||||
specifier: ^6.1.13
|
||||
version: 6.1.13
|
||||
@@ -647,8 +647,8 @@ importers:
|
||||
version: 0.9.4([email protected])
|
||||
devDependencies:
|
||||
'@next/eslint-plugin-next':
|
||||
specifier: 15.1.3
|
||||
version: 15.1.3
|
||||
specifier: 15.1.4
|
||||
version: 15.1.4
|
||||
'@types/flexsearch':
|
||||
specifier: ^0.7.6
|
||||
version: 0.7.6
|
||||
@@ -699,7 +699,7 @@ importers:
|
||||
version: 5.41.0(@types/[email protected])([email protected])
|
||||
next-sitemap:
|
||||
specifier: ^4.2.3
|
||||
version: 4.2.3([email protected].3(@opentelemetry/[email protected])(@playwright/[email protected])([email protected]([email protected]))([email protected]))
|
||||
version: 4.2.3([email protected].4(@opentelemetry/[email protected])(@playwright/[email protected])([email protected]([email protected]))([email protected]))
|
||||
postcss:
|
||||
specifier: 8.4.49
|
||||
version: 8.4.49
|
||||
@@ -749,8 +749,8 @@ importers:
|
||||
specifier: 0.468.0
|
||||
version: 0.468.0([email protected])
|
||||
next:
|
||||
specifier: 15.1.3
|
||||
version: 15.1.3(@babel/[email protected])(@opentelemetry/[email protected])(@playwright/[email protected])([email protected]([email protected]))([email protected])
|
||||
specifier: 15.1.4
|
||||
version: 15.1.4(@babel/[email protected])(@opentelemetry/[email protected])(@playwright/[email protected])([email protected]([email protected]))([email protected])
|
||||
next-themes:
|
||||
specifier: ^0.4.4
|
||||
version: 0.4.4([email protected]([email protected]))([email protected])
|
||||
@@ -786,8 +786,8 @@ importers:
|
||||
version: 3.24.1
|
||||
devDependencies:
|
||||
'@next/eslint-plugin-next':
|
||||
specifier: 15.1.3
|
||||
version: 15.1.3
|
||||
specifier: 15.1.4
|
||||
version: 15.1.4
|
||||
'@types/node':
|
||||
specifier: 22.10.2
|
||||
version: 22.10.2
|
||||
@@ -980,8 +980,8 @@ importers:
|
||||
specifier: 0.1.2
|
||||
version: 0.1.2
|
||||
viem:
|
||||
specifier: 2.21.55
|
||||
version: 2.21.55([email protected])([email protected])([email protected])([email protected])
|
||||
specifier: 2.22.15
|
||||
version: 2.22.15([email protected])([email protected])([email protected])([email protected])
|
||||
devDependencies:
|
||||
'@aws-sdk/client-kms':
|
||||
specifier: 3.592.0
|
||||
@@ -1145,7 +1145,7 @@ importers:
|
||||
devDependencies:
|
||||
'@wagmi/core':
|
||||
specifier: 2.16.0
|
||||
version: 2.16.0(@tanstack/[email protected])(@types/[email protected])([email protected])([email protected])([email protected]([email protected]))([email protected]1.55([email protected])([email protected])([email protected])([email protected]))
|
||||
version: 2.16.0(@tanstack/[email protected])(@types/[email protected])([email protected])([email protected])([email protected]([email protected]))([email protected]2.15([email protected])([email protected])([email protected])([email protected]))
|
||||
rimraf:
|
||||
specifier: 6.0.1
|
||||
version: 6.0.1
|
||||
@@ -1163,28 +1163,28 @@ packages:
|
||||
graphql:
|
||||
optional: true
|
||||
|
||||
'@abstract-foundation/agw-client@1.0.1':
|
||||
resolution: {integrity: sha512-ZJEC2siysQz9FdnWs6xFDY9vuIV+5E01nUFgv/Kvw2mRmf148T7H99SoelN2o8qCmv1r3z2iWQCLCLTa5f3FtQ==}
|
||||
'@abstract-foundation/agw-client@1.3.0':
|
||||
resolution: {integrity: sha512-rpo51uNQu8wpyWYUTGcyZY8Mt3tfZQKN0Sh0phPkeD2oIqZB4Ll3CNebwhvNi/AejyI6ZC+KWv6l4DVwZMwUDA==}
|
||||
peerDependencies:
|
||||
abitype: ^1.0.0
|
||||
typescript: '>=5.0.4'
|
||||
viem: ^2.21.26
|
||||
viem: ^2.22.14
|
||||
peerDependenciesMeta:
|
||||
typescript:
|
||||
optional: true
|
||||
|
||||
'@abstract-foundation/agw-react@1.0.1':
|
||||
resolution: {integrity: sha512-VlBoUo2xY99aaZYejEs419gCAbDAbP9ftSCa+NSXpMZV2TRYc7g/U8kucx9ugehtAAsnikgVc3LeNlgOe6FHnQ==}
|
||||
'@abstract-foundation/agw-react@1.4.1':
|
||||
resolution: {integrity: sha512-SNtenb4h5EFgtf77+6o7Z52UubMfzQegDtOEFt7GYaEd/SOMmhk6VE6swv8YbyPq3WgkaWo9x7eObkldlum3bQ==}
|
||||
peerDependencies:
|
||||
'@privy-io/cross-app-connect': ^0.1.2
|
||||
'@privy-io/react-auth': ^1.97.0
|
||||
'@privy-io/cross-app-connect': ^0.1.5
|
||||
'@privy-io/react-auth': ^2.0.5
|
||||
'@rainbow-me/rainbowkit': '*'
|
||||
'@tanstack/react-query': ^5
|
||||
react: '>=18'
|
||||
secp256k1: '>=5.0.1'
|
||||
thirdweb: ^5.68.0
|
||||
typescript: '>=5.0.4'
|
||||
viem: ^2.21.26
|
||||
viem: ^2.22.14
|
||||
wagmi: ^2
|
||||
peerDependenciesMeta:
|
||||
'@rainbow-me/rainbowkit':
|
||||
@@ -3649,23 +3649,20 @@ packages:
|
||||
'@types/react': '*'
|
||||
react: '*'
|
||||
|
||||
'@next/[email protected].0':
|
||||
resolution: {integrity: sha512-uEyuNZZgAbSWgiUbtihTA8y6QgEzc4b8Fpslmc4SXAjj67Ax5mlcv1HLlez+5dIGwO+vJ9PgCoI8ngWtBh/g1Q==}
|
||||
'@next/[email protected].4':
|
||||
resolution: {integrity: sha512-W8X96jOW0U5VjLVAkFr1P37kH2f/Ma9zzwgX2o3Omft92pI0XHpFG8Xa9YUT3NlhRJCe4ZKznr1VxhSrFNA+BA==}
|
||||
|
||||
'@next/[email protected]':
|
||||
resolution: {integrity: sha512-YmiG58BqyZ2FjrF2+5uZExL2BrLr8RTQzLXNDJ8pJr0O+rPlOeDPXp1p1/4OrR3avDidzZo3D8QO2cuDv1KCkw==}
|
||||
|
||||
'@next/[email protected].3':
|
||||
resolution: {integrity: sha512-Q1tXwQCGWyA3ehMph3VO+E6xFPHDKdHFYosadt0F78EObYxPio0S09H9UGYznDe6Wc8eLKLG89GqcFJJDiK5xw==}
|
||||
|
||||
'@next/[email protected]':
|
||||
resolution: {integrity: sha512-oeP1vnc5Cq9UoOb8SYHAEPbCXMzOgG70l+Zfd+Ie00R25FOm+CCVNrcIubJvB1tvBgakXE37MmqSycksXVPRqg==}
|
||||
'@next/[email protected].4':
|
||||
resolution: {integrity: sha512-2fZ5YZjedi5AGaeoaC0B20zGntEHRhi2SdWcu61i48BllODcAmmtj8n7YarSPt4DaTsJaBFdxQAVEVzgmx2Zpw==}
|
||||
|
||||
'@next/[email protected]':
|
||||
resolution: {integrity: sha512-HwlEXwCK3sr6zmVGEvWBjW9tBFs1Oe6hTmTLoFQtpm4As5HCdu8jfSE0XJOp7uhfEGLniIx8yrGxEWwNnY0fmQ==}
|
||||
|
||||
'@next/[email protected].0':
|
||||
resolution: {integrity: sha512-1USYedy2yRmPdIvQC1b2MBVwiJYrcZnCSHHZZETEuV1rAxjjXedbHmo43kwAv6DL3f9AgDHnl1/s1cqI7xhXdA==}
|
||||
'@next/[email protected].4':
|
||||
resolution: {integrity: sha512-GsmKCWPDW6Qas4/yL+zj7RLGrDsVu89F42/S9pVcPTvYmXNK1PqRT6H7outQy6Ox/AGB8As1lxPvk4dJmDIm7w==}
|
||||
peerDependencies:
|
||||
'@mdx-js/loader': '>=0.15.0'
|
||||
'@mdx-js/react': '>=0.15.0'
|
||||
@@ -3675,50 +3672,50 @@ packages:
|
||||
'@mdx-js/react':
|
||||
optional: true
|
||||
|
||||
'@next/[email protected].3':
|
||||
resolution: {integrity: sha512-aZtmIh8jU89DZahXQt1La0f2EMPt/i7W+rG1sLtYJERsP7GRnNFghsciFpQcKHcGh4dUiyTB5C1X3Dde/Gw8gg==}
|
||||
'@next/[email protected].4':
|
||||
resolution: {integrity: sha512-wBEMBs+np+R5ozN1F8Y8d/Dycns2COhRnkxRc+rvnbXke5uZBHkUGFgWxfTXn5rx7OLijuUhyfB+gC/ap58dDw==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [arm64]
|
||||
os: [darwin]
|
||||
|
||||
'@next/[email protected].3':
|
||||
resolution: {integrity: sha512-aw8901rjkVBK5mbq5oV32IqkJg+CQa6aULNlN8zyCWSsePzEG3kpDkAFkkTOh3eJ0p95KbkLyWBzslQKamXsLA==}
|
||||
'@next/[email protected].4':
|
||||
resolution: {integrity: sha512-7sgf5rM7Z81V9w48F02Zz6DgEJulavC0jadab4ZsJ+K2sxMNK0/BtF8J8J3CxnsJN3DGcIdC260wEKssKTukUw==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [x64]
|
||||
os: [darwin]
|
||||
|
||||
'@next/[email protected].3':
|
||||
resolution: {integrity: sha512-YbdaYjyHa4fPK4GR4k2XgXV0p8vbU1SZh7vv6El4bl9N+ZSiMfbmqCuCuNU1Z4ebJMumafaz6UCC2zaJCsdzjw==}
|
||||
'@next/[email protected].4':
|
||||
resolution: {integrity: sha512-JaZlIMNaJenfd55kjaLWMfok+vWBlcRxqnRoZrhFQrhM1uAehP3R0+Aoe+bZOogqlZvAz53nY/k3ZyuKDtT2zQ==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
|
||||
'@next/[email protected].3':
|
||||
resolution: {integrity: sha512-qgH/aRj2xcr4BouwKG3XdqNu33SDadqbkqB6KaZZkozar857upxKakbRllpqZgWl/NDeSCBYPmUAZPBHZpbA0w==}
|
||||
'@next/[email protected].4':
|
||||
resolution: {integrity: sha512-7EBBjNoyTO2ipMDgCiORpwwOf5tIueFntKjcN3NK+GAQD7OzFJe84p7a2eQUeWdpzZvhVXuAtIen8QcH71ZCOQ==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
|
||||
'@next/[email protected].3':
|
||||
resolution: {integrity: sha512-uzafnTFwZCPN499fNVnS2xFME8WLC9y7PLRs/yqz5lz1X/ySoxfaK2Hbz74zYUdEg+iDZPd8KlsWaw9HKkLEVw==}
|
||||
'@next/[email protected].4':
|
||||
resolution: {integrity: sha512-9TGEgOycqZFuADyFqwmK/9g6S0FYZ3tphR4ebcmCwhL8Y12FW8pIBKJvSwV+UBjMkokstGNH+9F8F031JZKpHw==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
|
||||
'@next/[email protected].3':
|
||||
resolution: {integrity: sha512-el6GUFi4SiDYnMTTlJJFMU+GHvw0UIFnffP1qhurrN1qJV3BqaSRUjkDUgVV44T6zpw1Lc6u+yn0puDKHs+Sbw==}
|
||||
'@next/[email protected].4':
|
||||
resolution: {integrity: sha512-0578bLRVDJOh+LdIoKvgNDz77+Bd85c5JrFgnlbI1SM3WmEQvsjxTA8ATu9Z9FCiIS/AliVAW2DV/BDwpXbtiQ==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
|
||||
'@next/[email protected].3':
|
||||
resolution: {integrity: sha512-6RxKjvnvVMM89giYGI1qye9ODsBQpHSHVo8vqA8xGhmRPZHDQUE4jcDbhBwK0GnFMqBnu+XMg3nYukNkmLOLWw==}
|
||||
'@next/[email protected].4':
|
||||
resolution: {integrity: sha512-JgFCiV4libQavwII+kncMCl30st0JVxpPOtzWcAI2jtum4HjYaclobKhj+JsRu5tFqMtA5CJIa0MvYyuu9xjjQ==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [arm64]
|
||||
os: [win32]
|
||||
|
||||
'@next/[email protected].3':
|
||||
resolution: {integrity: sha512-VId/f5blObG7IodwC5Grf+aYP0O8Saz1/aeU3YcWqNdIUAmFQY3VEPKPaIzfv32F/clvanOb2K2BR5DtDs6XyQ==}
|
||||
'@next/[email protected].4':
|
||||
resolution: {integrity: sha512-xxsJy9wzq7FR5SqPCUqdgSXiNXrMuidgckBa8nH9HtjjxsilgcN6VgXF6tZ3uEWuVEadotQJI8/9EQ6guTC4Yw==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [x64]
|
||||
os: [win32]
|
||||
@@ -3740,10 +3737,6 @@ packages:
|
||||
resolution: {integrity: sha512-UTMhXK9SeDhFJVrHeUJ5uZlI6ajXg10O6Ddocf9S6GjbSBVZsJo88HzKwXznNfGpMTRDyJkqMjNDPYgf0qFWnw==}
|
||||
engines: {node: ^14.21.3 || >=16}
|
||||
|
||||
'@noble/[email protected]':
|
||||
resolution: {integrity: sha512-j84kjAbzEnQHaSIhRPUmB3/eVXu2k3dKPl2LOrR8fSOIL+89U+7lV117EWHtq/GHM3ReGHM46iRBdZfpc4HRUQ==}
|
||||
engines: {node: ^14.21.3 || >=16}
|
||||
|
||||
'@noble/[email protected]':
|
||||
resolution: {integrity: sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ==}
|
||||
engines: {node: ^14.21.3 || >=16}
|
||||
@@ -3764,10 +3757,6 @@ packages:
|
||||
resolution: {integrity: sha512-pq5D8h10hHBjyqX+cfBm0i8JUXJ0UhczFc4r74zbuT9XgewFo2E3J1cOaGtdZynILNmQ685YWGzGE1Zv6io50w==}
|
||||
engines: {node: ^14.21.3 || >=16}
|
||||
|
||||
'@noble/[email protected]':
|
||||
resolution: {integrity: sha512-HXydb0DgzTpDPwbVeDGCG1gIu7X6+AuU6Zl6av/E/KG8LMsvPntvq+w17CHRpKBmN6Ybdrt1eP3k4cj8DJa78w==}
|
||||
engines: {node: ^14.21.3 || >=16}
|
||||
|
||||
'@noble/[email protected]':
|
||||
resolution: {integrity: sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==}
|
||||
engines: {node: ^14.21.3 || >=16}
|
||||
@@ -4155,8 +4144,8 @@ packages:
|
||||
resolution: {integrity: sha512-YepVxiylommw2jBuUpdqm90Ebnx6H/HZODDFEpi2/G7lOWMN3GemFHllYC8sKzLIwbPuBqAo5ImvyootOXMCEA==}
|
||||
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
|
||||
|
||||
'@privy-io/[email protected].3':
|
||||
resolution: {integrity: sha512-crCswhF8OPmynpI0o3iSsJFMTQvO7gUK+TUYVCnxdp2oQhknn4y7v/0c2qTlXIEco1Vdsx9oruhkCWLsrM9vfg==}
|
||||
'@privy-io/[email protected].5':
|
||||
resolution: {integrity: sha512-fSq75VXFOZVtSA9gX22FpGuaJP8BFeWQ3oLoOQ4JW1cr3fEhGaEyg7+gfO07JR8FSxgBDSg498zushXihEO7mQ==}
|
||||
peerDependencies:
|
||||
'@rainbow-me/rainbowkit': ^2.1.5
|
||||
'@wagmi/core': ^2.13.4
|
||||
@@ -4985,30 +4974,27 @@ packages:
|
||||
'@scure/[email protected]':
|
||||
resolution: {integrity: sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg==}
|
||||
|
||||
'@scure/[email protected]':
|
||||
resolution: {integrity: sha512-DGmGtC8Tt63J5GfHgfl5CuAXh96VF/LD8K9Hr/Gv0J2lAoRGlPOMpqMpMbCTOoOJMZCk2Xt+DskdDyn6dEFdzQ==}
|
||||
|
||||
'@scure/[email protected]':
|
||||
resolution: {integrity: sha512-5Yy9czTO47mqz+/J8GM6GIId4umdCk1wc1q8rKERQulIoc8VP9pzDcghv10Tl2E7R96ZUx/PhND3ESYUQX8NuQ==}
|
||||
|
||||
'@scure/[email protected]':
|
||||
resolution: {integrity: sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==}
|
||||
|
||||
'@scure/[email protected]':
|
||||
resolution: {integrity: sha512-82q1QfklrUUdXJzjuRU7iG7D7XiFx5PHYVS0+oeNKhyDLT7WPqs6pBcM2W5ZdwOwKCwoE1Vy1se+DHjcXwCYnA==}
|
||||
|
||||
'@scure/[email protected]':
|
||||
resolution: {integrity: sha512-jSO+5Ud1E588Y+LFo8TaB8JVPNAZw/lGGao+1SepHDeTs2dFLurdNIAgUuDlwezqEjRjElkCJajVrtrZaBxvaQ==}
|
||||
|
||||
'@scure/[email protected]':
|
||||
resolution: {integrity: sha512-t96EPDMbtGgtb7onKKqxRLfE5g05k7uHnHRM2xdE6BP/ZmxaLtPek4J4KfVn/90IQNrU1IOAqMgiDtUdtbe3nw==}
|
||||
|
||||
'@scure/[email protected]':
|
||||
resolution: {integrity: sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==}
|
||||
|
||||
'@scure/[email protected]':
|
||||
resolution: {integrity: sha512-Dop+ASYhnrwm9+HA/HwXg7j2ZqM6yk2fyLWb5znexjctFY3+E+eU8cIWI0Pql0Qx4hPZCijlGq4OL71g+Uz30A==}
|
||||
|
||||
'@scure/[email protected]':
|
||||
resolution: {integrity: sha512-GnlufVSP9UdAo/H2Patfv22VTtpNTyfi+I3qCKpvuB5l1KWzEYx+l2TNpBy9Ksh4xTs3Rn06tBlpWCi/1Vz8gw==}
|
||||
|
||||
'@scure/[email protected]':
|
||||
resolution: {integrity: sha512-TFM4ni0vKvCfBpohoh+/lY05i9gRbSwXWngAsF4CABQxoaOHijxuaZ2R6cStDQ5CHtHO9aGJTr4ksVJASRRyMA==}
|
||||
|
||||
'@segment/[email protected]':
|
||||
resolution: {integrity: sha512-ZMCSfztDBqwotkl848ODgVcAmN4OItEWDCkshcKz0/W6gGSQayuuCtWV/MlodFivAZD793d6UgANd6wCXUfrIw==}
|
||||
|
||||
@@ -6741,6 +6727,17 @@ packages:
|
||||
zod:
|
||||
optional: true
|
||||
|
||||
[email protected]:
|
||||
resolution: {integrity: sha512-ZeiI6h3GnW06uYDLx0etQtX/p8E24UaHHBj57RSjK7YBFe7iuVn07EDpOeP451D06sF27VOz9JJPlIKJmXgkEg==}
|
||||
peerDependencies:
|
||||
typescript: '>=5.0.4'
|
||||
zod: ^3 >=3.22.0
|
||||
peerDependenciesMeta:
|
||||
typescript:
|
||||
optional: true
|
||||
zod:
|
||||
optional: true
|
||||
|
||||
[email protected]:
|
||||
resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==}
|
||||
engines: {node: '>=6.5'}
|
||||
@@ -11297,8 +11294,8 @@ packages:
|
||||
[email protected]:
|
||||
resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==}
|
||||
|
||||
[email protected].3:
|
||||
resolution: {integrity: sha512-5igmb8N8AEhWDYzogcJvtcRDU6n4cMGtBklxKD4biYv4LXN8+awc/bbQ2IM2NQHdVPgJ6XumYXfo3hBtErg1DA==}
|
||||
[email protected].4:
|
||||
resolution: {integrity: sha512-mTaq9dwaSuwwOrcu3ebjDYObekkxRnXpuVL21zotM8qE2W0HBOdVIdg2Li9QjMEZrj73LN96LcWcz62V19FjAg==}
|
||||
engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
@@ -11694,14 +11691,6 @@ packages:
|
||||
resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==}
|
||||
engines: {node: '>= 0.4'}
|
||||
|
||||
[email protected]:
|
||||
resolution: {integrity: sha512-ak/8K0Rtphg9vnRJlbOdaX9R7cmxD2MiSthjWGaQdMk3D7hrAlDoM+6Lxn7hN52Za3vrXfZ7enfke/5WjolDww==}
|
||||
peerDependencies:
|
||||
typescript: '>=5.4.0'
|
||||
peerDependenciesMeta:
|
||||
typescript:
|
||||
optional: true
|
||||
|
||||
[email protected]:
|
||||
resolution: {integrity: sha512-QWCyFfVk5hFOhg13SGqRKih5B7EBucrf+Z1dfmN9jJQ8MZdrRx9mbD78JQL5ogSzDT7fcHgyMCaXd/3AWn6xHQ==}
|
||||
peerDependencies:
|
||||
@@ -11718,6 +11707,14 @@ packages:
|
||||
typescript:
|
||||
optional: true
|
||||
|
||||
[email protected]:
|
||||
resolution: {integrity: sha512-17Gk/eFsFRAZ80p5eKqv89a57uXjd3NgIf1CaXojATPBuujVc/fQSVhBeAU9JCRB+k7J50WQAyWTxK19T9GgbA==}
|
||||
peerDependencies:
|
||||
typescript: '>=5.4.0'
|
||||
peerDependenciesMeta:
|
||||
typescript:
|
||||
optional: true
|
||||
|
||||
[email protected]:
|
||||
resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==}
|
||||
engines: {node: '>=12.20'}
|
||||
@@ -14437,8 +14434,8 @@ packages:
|
||||
[email protected]:
|
||||
resolution: {integrity: sha512-PnpQQMuxlwYdocC8fIJqVXvkeViHYzotI+NJrCuav0ZYFoq912ZHBk3mCeuj+5/VpodOjPe1z0Fk2ihgzlXqjQ==}
|
||||
|
||||
[email protected]1.55:
|
||||
resolution: {integrity: sha512-PgXew7C11cAuEtOSgRyQx2kJxEOPUwIwZA9dMglRByqJuFVA7wSGZZOOo/93iylAA8E15bEdqy9xulU3oKZ70Q==}
|
||||
[email protected]2.15:
|
||||
resolution: {integrity: sha512-7m5T/Emaj/C59jsRxYfZvMvckRRC4+rV+MVufKelxPS5DMhVR4z3Bk6CG8z+eQkpLVearqKBiPvvreLI0AesgA==}
|
||||
peerDependencies:
|
||||
typescript: '>=5.0.4'
|
||||
peerDependenciesMeta:
|
||||
@@ -14648,9 +14645,6 @@ packages:
|
||||
resolution: {integrity: sha512-tsu8FiKJLk2PzhDl9fXbGUWTkkVXYhtTA+SmEFkKft+9BgwLxfCRpU96sWv7ICC8zixBNd3JURVoiR3dUXgP8A==}
|
||||
engines: {node: '>=8.0.0'}
|
||||
|
||||
[email protected]:
|
||||
resolution: {integrity: sha512-EeYD+gmIT80YkSIDb2iWq0lq2zbHo1CxHlQTeJ+KkCILWpVy3zASH3ByD4bopzfk0uCwXxLqKGLqp2W4O28VFA==}
|
||||
|
||||
[email protected]:
|
||||
resolution: {integrity: sha512-c5s35LgVa5tFaHhrZDnr3FpQpjj1BB+RXhLTYUxGqBVN460HkbM8TBtEqdXWbpTKfzwCcjAZVF7zXCYSKtcp9g==}
|
||||
|
||||
@@ -15024,23 +15018,23 @@ snapshots:
|
||||
optionalDependencies:
|
||||
graphql: 16.10.0
|
||||
|
||||
'@abstract-foundation/agw-client@1.0.1([email protected].7([email protected])([email protected]))([email protected])([email protected]1.55([email protected])([email protected])([email protected])([email protected]))':
|
||||
'@abstract-foundation/agw-client@1.3.0([email protected].8([email protected])([email protected]))([email protected])([email protected]2.15([email protected])([email protected])([email protected])([email protected]))':
|
||||
dependencies:
|
||||
abitype: 1.0.7([email protected])([email protected])
|
||||
viem: 2.21.55([email protected])([email protected])([email protected])([email protected])
|
||||
abitype: 1.0.8([email protected])([email protected])
|
||||
viem: 2.22.15([email protected])([email protected])([email protected])([email protected])
|
||||
optionalDependencies:
|
||||
typescript: 5.7.2
|
||||
|
||||
'@abstract-foundation/agw-react@1.0.1(tbp7y4vdr4g6hzh7wwqlc5erca)':
|
||||
'@abstract-foundation/agw-react@1.4.1(ps632aoqsqso3jaq3xeoigleqq)':
|
||||
dependencies:
|
||||
'@abstract-foundation/agw-client': 1.0.1([email protected].7([email protected])([email protected]))([email protected])([email protected]1.55([email protected])([email protected])([email protected])([email protected]))
|
||||
'@privy-io/cross-app-connect': 0.1.3(@wagmi/[email protected](@tanstack/[email protected])(@types/[email protected])([email protected])([email protected])([email protected]([email protected]))([email protected]1.55([email protected])([email protected])([email protected])([email protected])))([email protected]1.55([email protected])([email protected])([email protected])([email protected]))
|
||||
'@privy-io/react-auth': 1.99.1(@abstract-foundation/agw-client@1.0.1([email protected].7([email protected])([email protected]))([email protected])([email protected]1.55([email protected])([email protected])([email protected])([email protected])))(@solana/[email protected]([email protected])([email protected])([email protected]))(@types/[email protected])([email protected])([email protected])([email protected])([email protected])([email protected]([email protected]))([email protected])([email protected])([email protected]([email protected]))([email protected])([email protected])
|
||||
'@abstract-foundation/agw-client': 1.3.0([email protected].8([email protected])([email protected]))([email protected])([email protected]2.15([email protected])([email protected])([email protected])([email protected]))
|
||||
'@privy-io/cross-app-connect': 0.1.5(@wagmi/[email protected](@tanstack/[email protected])(@types/[email protected])([email protected])([email protected])([email protected]([email protected]))([email protected]2.15([email protected])([email protected])([email protected])([email protected])))([email protected]2.15([email protected])([email protected])([email protected])([email protected]))
|
||||
'@privy-io/react-auth': 1.99.1(@abstract-foundation/agw-client@1.3.0([email protected].8([email protected])([email protected]))([email protected])([email protected]2.15([email protected])([email protected])([email protected])([email protected])))(@solana/[email protected]([email protected])([email protected])([email protected]))(@types/[email protected])([email protected])([email protected])([email protected])([email protected])([email protected]([email protected]))([email protected])([email protected])([email protected]([email protected]))([email protected])([email protected])
|
||||
'@tanstack/react-query': 5.62.16([email protected])
|
||||
react: 19.0.0
|
||||
secp256k1: 5.0.1
|
||||
viem: 2.21.55([email protected])([email protected])([email protected])([email protected])
|
||||
wagmi: 2.14.8(@tanstack/[email protected])(@tanstack/[email protected]([email protected]))(@types/[email protected])([email protected])([email protected])([email protected])([email protected])([email protected])([email protected])([email protected])([email protected]1.55([email protected])([email protected])([email protected])([email protected]))([email protected])
|
||||
viem: 2.22.15([email protected])([email protected])([email protected])([email protected])
|
||||
wagmi: 2.14.8(@tanstack/[email protected])(@tanstack/[email protected]([email protected]))(@types/[email protected])([email protected])([email protected])([email protected])([email protected])([email protected])([email protected])([email protected])([email protected]2.15([email protected])([email protected])([email protected])([email protected]))([email protected])
|
||||
optionalDependencies:
|
||||
thirdweb: link:packages/thirdweb
|
||||
typescript: 5.7.2
|
||||
@@ -18694,7 +18688,7 @@ snapshots:
|
||||
'@types/react': 19.0.2
|
||||
react: 19.0.0
|
||||
|
||||
'@next/[email protected].0([email protected])([email protected])':
|
||||
'@next/[email protected].4([email protected])([email protected])':
|
||||
dependencies:
|
||||
webpack-bundle-analyzer: 4.10.1([email protected])([email protected])
|
||||
transitivePeerDependencies:
|
||||
@@ -18703,45 +18697,41 @@ snapshots:
|
||||
|
||||
'@next/[email protected]': {}
|
||||
|
||||
'@next/[email protected].3': {}
|
||||
|
||||
'@next/[email protected]':
|
||||
dependencies:
|
||||
fast-glob: 3.3.1
|
||||
'@next/[email protected].4': {}
|
||||
|
||||
'@next/[email protected]':
|
||||
dependencies:
|
||||
fast-glob: 3.3.1
|
||||
|
||||
'@next/[email protected].0(@mdx-js/[email protected]([email protected](@swc/[email protected](@swc/[email protected]))))(@mdx-js/[email protected]([email protected]))':
|
||||
'@next/[email protected].4(@mdx-js/[email protected]([email protected](@swc/[email protected](@swc/[email protected]))))(@mdx-js/[email protected]([email protected]))':
|
||||
dependencies:
|
||||
source-map: 0.7.4
|
||||
optionalDependencies:
|
||||
'@mdx-js/loader': 2.3.0([email protected](@swc/[email protected](@swc/[email protected])))
|
||||
'@mdx-js/react': 2.3.0([email protected])
|
||||
|
||||
'@next/[email protected].3':
|
||||
'@next/[email protected].4':
|
||||
optional: true
|
||||
|
||||
'@next/[email protected].3':
|
||||
'@next/[email protected].4':
|
||||
optional: true
|
||||
|
||||
'@next/[email protected].3':
|
||||
'@next/[email protected].4':
|
||||
optional: true
|
||||
|
||||
'@next/[email protected].3':
|
||||
'@next/[email protected].4':
|
||||
optional: true
|
||||
|
||||
'@next/[email protected].3':
|
||||
'@next/[email protected].4':
|
||||
optional: true
|
||||
|
||||
'@next/[email protected].3':
|
||||
'@next/[email protected].4':
|
||||
optional: true
|
||||
|
||||
'@next/[email protected].3':
|
||||
'@next/[email protected].4':
|
||||
optional: true
|
||||
|
||||
'@next/[email protected].3':
|
||||
'@next/[email protected].4':
|
||||
optional: true
|
||||
|
||||
'@noble/[email protected]': {}
|
||||
@@ -18760,10 +18750,6 @@ snapshots:
|
||||
dependencies:
|
||||
'@noble/hashes': 1.6.0
|
||||
|
||||
'@noble/[email protected]':
|
||||
dependencies:
|
||||
'@noble/hashes': 1.7.0
|
||||
|
||||
'@noble/[email protected]':
|
||||
dependencies:
|
||||
'@noble/hashes': 1.7.1
|
||||
@@ -18776,8 +18762,6 @@ snapshots:
|
||||
|
||||
'@noble/[email protected]': {}
|
||||
|
||||
'@noble/[email protected]': {}
|
||||
|
||||
'@noble/[email protected]': {}
|
||||
|
||||
'@nodelib/[email protected]':
|
||||
@@ -19348,16 +19332,16 @@ snapshots:
|
||||
dependencies:
|
||||
zod: 3.24.1
|
||||
|
||||
'@privy-io/[email protected].3(@wagmi/[email protected](@tanstack/[email protected])(@types/[email protected])([email protected])([email protected])([email protected]([email protected]))([email protected]1.55([email protected])([email protected])([email protected])([email protected])))([email protected]1.55([email protected])([email protected])([email protected])([email protected]))':
|
||||
'@privy-io/[email protected].5(@wagmi/[email protected](@tanstack/[email protected])(@types/[email protected])([email protected])([email protected])([email protected]([email protected]))([email protected]2.15([email protected])([email protected])([email protected])([email protected])))([email protected]2.15([email protected])([email protected])([email protected])([email protected]))':
|
||||
dependencies:
|
||||
'@noble/curves': 1.7.0
|
||||
'@noble/hashes': 1.3.2
|
||||
'@scure/base': 1.1.9
|
||||
viem: 2.21.55([email protected])([email protected])([email protected])([email protected])
|
||||
viem: 2.22.15([email protected])([email protected])([email protected])([email protected])
|
||||
optionalDependencies:
|
||||
'@wagmi/core': 2.16.3(@tanstack/[email protected])(@types/[email protected])([email protected])([email protected])([email protected]([email protected]))([email protected]1.55([email protected])([email protected])([email protected])([email protected]))
|
||||
'@wagmi/core': 2.16.3(@tanstack/[email protected])(@types/[email protected])([email protected])([email protected])([email protected]([email protected]))([email protected]2.15([email protected])([email protected])([email protected])([email protected]))
|
||||
|
||||
'@privy-io/[email protected]([email protected])([email protected])([email protected]1.55([email protected])([email protected])([email protected])([email protected]))':
|
||||
'@privy-io/[email protected]([email protected])([email protected])([email protected]2.15([email protected])([email protected])([email protected])([email protected]))':
|
||||
dependencies:
|
||||
'@ethersproject/abstract-signer': 5.7.0
|
||||
'@ethersproject/bignumber': 5.7.0
|
||||
@@ -19375,7 +19359,7 @@ snapshots:
|
||||
set-cookie-parser: 2.7.1
|
||||
uuid: 9.0.1
|
||||
optionalDependencies:
|
||||
viem: 2.21.55([email protected])([email protected])([email protected])([email protected])
|
||||
viem: 2.22.15([email protected])([email protected])([email protected])([email protected])
|
||||
transitivePeerDependencies:
|
||||
- bufferutil
|
||||
- utf-8-validate
|
||||
@@ -19391,7 +19375,7 @@ snapshots:
|
||||
- bufferutil
|
||||
- utf-8-validate
|
||||
|
||||
'@privy-io/[email protected](@abstract-foundation/agw-client@1.0.1([email protected].7([email protected])([email protected]))([email protected])([email protected]1.55([email protected])([email protected])([email protected])([email protected])))(@solana/[email protected]([email protected])([email protected])([email protected]))(@types/[email protected])([email protected])([email protected])([email protected])([email protected])([email protected]([email protected]))([email protected])([email protected])([email protected]([email protected]))([email protected])([email protected])':
|
||||
'@privy-io/[email protected](@abstract-foundation/agw-client@1.3.0([email protected].8([email protected])([email protected]))([email protected])([email protected]2.15([email protected])([email protected])([email protected])([email protected])))(@solana/[email protected]([email protected])([email protected])([email protected]))(@types/[email protected])([email protected])([email protected])([email protected])([email protected])([email protected]([email protected]))([email protected])([email protected])([email protected]([email protected]))([email protected])([email protected])':
|
||||
dependencies:
|
||||
'@coinbase/wallet-sdk': 4.0.3
|
||||
'@ethersproject/abstract-signer': 5.7.0
|
||||
@@ -19409,7 +19393,7 @@ snapshots:
|
||||
'@heroicons/react': 2.2.0([email protected])
|
||||
'@marsidev/react-turnstile': 0.4.1([email protected]([email protected]))([email protected])
|
||||
'@metamask/eth-sig-util': 6.0.2
|
||||
'@privy-io/js-sdk-core': 0.37.1([email protected])([email protected])([email protected]1.55([email protected])([email protected])([email protected])([email protected]))
|
||||
'@privy-io/js-sdk-core': 0.37.1([email protected])([email protected])([email protected]2.15([email protected])([email protected])([email protected])([email protected]))
|
||||
'@simplewebauthn/browser': 9.0.1
|
||||
'@solana/wallet-adapter-base': 0.9.23(@solana/[email protected]([email protected])([email protected])([email protected]))
|
||||
'@solana/wallet-standard-wallet-adapter-base': 1.1.4(@solana/[email protected]([email protected])([email protected])([email protected]))([email protected])
|
||||
@@ -19438,12 +19422,12 @@ snapshots:
|
||||
stylis: 4.3.5
|
||||
tinycolor2: 1.6.0
|
||||
uuid: 9.0.1
|
||||
viem: 2.21.55([email protected])([email protected])([email protected])([email protected])
|
||||
viem: 2.22.15([email protected])([email protected])([email protected])([email protected])
|
||||
web3-core: 1.10.4([email protected])
|
||||
web3-core-helpers: 1.10.3
|
||||
zustand: 5.0.3(@types/[email protected])([email protected])([email protected]([email protected]))
|
||||
optionalDependencies:
|
||||
'@abstract-foundation/agw-client': 1.0.1([email protected].7([email protected])([email protected]))([email protected])([email protected]1.55([email protected])([email protected])([email protected])([email protected]))
|
||||
'@abstract-foundation/agw-client': 1.3.0([email protected].8([email protected])([email protected]))([email protected])([email protected]2.15([email protected])([email protected])([email protected])([email protected]))
|
||||
'@solana/web3.js': 1.98.0([email protected])([email protected])([email protected])
|
||||
transitivePeerDependencies:
|
||||
- '@azure/app-configuration'
|
||||
@@ -20374,7 +20358,7 @@ snapshots:
|
||||
'@safe-global/[email protected]([email protected])([email protected])([email protected])([email protected])':
|
||||
dependencies:
|
||||
'@safe-global/safe-gateway-typescript-sdk': 3.22.7
|
||||
viem: 2.21.55([email protected])([email protected])([email protected])([email protected])
|
||||
viem: 2.22.15([email protected])([email protected])([email protected])([email protected])
|
||||
transitivePeerDependencies:
|
||||
- bufferutil
|
||||
- typescript
|
||||
@@ -20387,8 +20371,6 @@ snapshots:
|
||||
|
||||
'@scure/[email protected]': {}
|
||||
|
||||
'@scure/[email protected]': {}
|
||||
|
||||
'@scure/[email protected]': {}
|
||||
|
||||
'@scure/[email protected]':
|
||||
@@ -20397,32 +20379,32 @@ snapshots:
|
||||
'@noble/hashes': 1.4.0
|
||||
'@scure/base': 1.1.9
|
||||
|
||||
'@scure/[email protected]':
|
||||
dependencies:
|
||||
'@noble/curves': 1.7.0
|
||||
'@noble/hashes': 1.6.1
|
||||
'@scure/base': 1.2.1
|
||||
|
||||
'@scure/[email protected]':
|
||||
dependencies:
|
||||
'@noble/curves': 1.8.0
|
||||
'@noble/hashes': 1.7.0
|
||||
'@scure/base': 1.2.1
|
||||
'@noble/curves': 1.8.1
|
||||
'@noble/hashes': 1.7.1
|
||||
'@scure/base': 1.2.4
|
||||
|
||||
'@scure/[email protected]':
|
||||
dependencies:
|
||||
'@noble/curves': 1.8.1
|
||||
'@noble/hashes': 1.7.1
|
||||
'@scure/base': 1.2.4
|
||||
|
||||
'@scure/[email protected]':
|
||||
dependencies:
|
||||
'@noble/hashes': 1.4.0
|
||||
'@scure/base': 1.1.9
|
||||
|
||||
'@scure/[email protected]':
|
||||
dependencies:
|
||||
'@noble/hashes': 1.6.1
|
||||
'@scure/base': 1.2.1
|
||||
|
||||
'@scure/[email protected]':
|
||||
dependencies:
|
||||
'@noble/hashes': 1.7.0
|
||||
'@scure/base': 1.2.1
|
||||
'@noble/hashes': 1.7.1
|
||||
'@scure/base': 1.2.4
|
||||
|
||||
'@scure/[email protected]':
|
||||
dependencies:
|
||||
'@noble/hashes': 1.7.1
|
||||
'@scure/base': 1.2.4
|
||||
|
||||
'@segment/[email protected]':
|
||||
dependencies:
|
||||
@@ -20513,7 +20495,7 @@ snapshots:
|
||||
|
||||
'@sentry/[email protected]': {}
|
||||
|
||||
'@sentry/[email protected](@opentelemetry/[email protected](@opentelemetry/[email protected]))(@opentelemetry/[email protected](@opentelemetry/[email protected]))(@opentelemetry/[email protected](@opentelemetry/[email protected]))([email protected])([email protected].3(@babel/[email protected])(@opentelemetry/[email protected])(@playwright/[email protected])([email protected]([email protected]))([email protected]))([email protected])([email protected](@swc/[email protected](@swc/[email protected]))([email protected]))':
|
||||
'@sentry/[email protected](@opentelemetry/[email protected](@opentelemetry/[email protected]))(@opentelemetry/[email protected](@opentelemetry/[email protected]))(@opentelemetry/[email protected](@opentelemetry/[email protected]))([email protected])([email protected].4(@babel/[email protected])(@opentelemetry/[email protected])(@playwright/[email protected])([email protected]([email protected]))([email protected]))([email protected])([email protected](@swc/[email protected](@swc/[email protected]))([email protected]))':
|
||||
dependencies:
|
||||
'@opentelemetry/api': 1.9.0
|
||||
'@opentelemetry/semantic-conventions': 1.28.0
|
||||
@@ -20526,7 +20508,7 @@ snapshots:
|
||||
'@sentry/vercel-edge': 8.45.1
|
||||
'@sentry/webpack-plugin': 2.22.7([email protected])([email protected](@swc/[email protected](@swc/[email protected]))([email protected]))
|
||||
chalk: 3.0.0
|
||||
next: 15.1.3(@babel/[email protected])(@opentelemetry/[email protected])(@playwright/[email protected])([email protected]([email protected]))([email protected])
|
||||
next: 15.1.4(@babel/[email protected])(@opentelemetry/[email protected])(@playwright/[email protected])([email protected]([email protected]))([email protected])
|
||||
resolve: 1.22.8
|
||||
rollup: 3.29.5
|
||||
stacktrace-parser: 0.1.10
|
||||
@@ -21429,7 +21411,7 @@ snapshots:
|
||||
dependencies:
|
||||
storybook: 8.4.7([email protected])([email protected])([email protected])
|
||||
|
||||
'@storybook/[email protected](@swc/[email protected](@swc/[email protected]))([email protected])([email protected].3(@babel/[email protected])(@opentelemetry/[email protected])(@playwright/[email protected])([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected])([email protected]([email protected])([email protected])([email protected]))([email protected])([email protected])([email protected])([email protected](@swc/[email protected](@swc/[email protected]))([email protected]))':
|
||||
'@storybook/[email protected](@swc/[email protected](@swc/[email protected]))([email protected])([email protected].4(@babel/[email protected])(@opentelemetry/[email protected])(@playwright/[email protected])([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected])([email protected]([email protected])([email protected])([email protected]))([email protected])([email protected])([email protected])([email protected](@swc/[email protected](@swc/[email protected]))([email protected]))':
|
||||
dependencies:
|
||||
'@babel/core': 7.26.0
|
||||
'@babel/plugin-syntax-bigint': 7.8.3(@babel/[email protected])
|
||||
@@ -21456,7 +21438,7 @@ snapshots:
|
||||
find-up: 5.0.0
|
||||
image-size: 1.2.0
|
||||
loader-utils: 3.3.1
|
||||
next: 15.1.3(@babel/[email protected])(@opentelemetry/[email protected])(@playwright/[email protected])([email protected]([email protected]))([email protected])
|
||||
next: 15.1.4(@babel/[email protected])(@opentelemetry/[email protected])(@playwright/[email protected])([email protected]([email protected]))([email protected])
|
||||
node-polyfill-webpack-plugin: 2.0.1([email protected](@swc/[email protected](@swc/[email protected]))([email protected]))
|
||||
pnp-webpack-plugin: 1.7.0([email protected])
|
||||
postcss: 8.4.49
|
||||
@@ -22717,16 +22699,16 @@ snapshots:
|
||||
loupe: 3.1.2
|
||||
tinyrainbow: 1.2.0
|
||||
|
||||
'@wagmi/[email protected](@types/[email protected])(@wagmi/[email protected](@tanstack/[email protected])(@types/[email protected])([email protected])([email protected])([email protected]([email protected]))([email protected]1.55([email protected])([email protected])([email protected])([email protected])))([email protected])([email protected])([email protected])([email protected])([email protected])([email protected])([email protected])([email protected]1.55([email protected])([email protected])([email protected])([email protected]))([email protected])':
|
||||
'@wagmi/[email protected](@types/[email protected])(@wagmi/[email protected](@tanstack/[email protected])(@types/[email protected])([email protected])([email protected])([email protected]([email protected]))([email protected]2.15([email protected])([email protected])([email protected])([email protected])))([email protected])([email protected])([email protected])([email protected])([email protected])([email protected])([email protected])([email protected]2.15([email protected])([email protected])([email protected])([email protected]))([email protected])':
|
||||
dependencies:
|
||||
'@coinbase/wallet-sdk': 4.2.3
|
||||
'@metamask/sdk': 0.31.5([email protected])([email protected])([email protected])
|
||||
'@safe-global/safe-apps-provider': 0.18.5([email protected])([email protected])([email protected])([email protected])
|
||||
'@safe-global/safe-apps-sdk': 9.1.0([email protected])([email protected])([email protected])([email protected])
|
||||
'@wagmi/core': 2.16.3(@tanstack/[email protected])(@types/[email protected])([email protected])([email protected])([email protected]([email protected]))([email protected]1.55([email protected])([email protected])([email protected])([email protected]))
|
||||
'@wagmi/core': 2.16.3(@tanstack/[email protected])(@types/[email protected])([email protected])([email protected])([email protected]([email protected]))([email protected]2.15([email protected])([email protected])([email protected])([email protected]))
|
||||
'@walletconnect/ethereum-provider': 2.17.0(@types/[email protected])([email protected])([email protected])([email protected])([email protected])([email protected])([email protected])
|
||||
cbw-sdk: '@coinbase/[email protected]'
|
||||
viem: 2.21.55([email protected])([email protected])([email protected])([email protected])
|
||||
viem: 2.22.15([email protected])([email protected])([email protected])([email protected])
|
||||
optionalDependencies:
|
||||
typescript: 5.7.2
|
||||
transitivePeerDependencies:
|
||||
@@ -22756,11 +22738,11 @@ snapshots:
|
||||
- utf-8-validate
|
||||
- zod
|
||||
|
||||
'@wagmi/[email protected](@tanstack/[email protected])(@types/[email protected])([email protected])([email protected])([email protected]([email protected]))([email protected]1.55([email protected])([email protected])([email protected])([email protected]))':
|
||||
'@wagmi/[email protected](@tanstack/[email protected])(@types/[email protected])([email protected])([email protected])([email protected]([email protected]))([email protected]2.15([email protected])([email protected])([email protected])([email protected]))':
|
||||
dependencies:
|
||||
eventemitter3: 5.0.1
|
||||
mipd: 0.0.7([email protected])
|
||||
viem: 2.21.55([email protected])([email protected])([email protected])([email protected])
|
||||
viem: 2.22.15([email protected])([email protected])([email protected])([email protected])
|
||||
zustand: 5.0.0(@types/[email protected])([email protected])([email protected]([email protected]))
|
||||
optionalDependencies:
|
||||
'@tanstack/query-core': 5.62.16
|
||||
@@ -22771,11 +22753,11 @@ snapshots:
|
||||
- react
|
||||
- use-sync-external-store
|
||||
|
||||
'@wagmi/[email protected](@tanstack/[email protected])(@types/[email protected])([email protected])([email protected])([email protected]([email protected]))([email protected]1.55([email protected])([email protected])([email protected])([email protected]))':
|
||||
'@wagmi/[email protected](@tanstack/[email protected])(@types/[email protected])([email protected])([email protected])([email protected]([email protected]))([email protected]2.15([email protected])([email protected])([email protected])([email protected]))':
|
||||
dependencies:
|
||||
eventemitter3: 5.0.1
|
||||
mipd: 0.0.7([email protected])
|
||||
viem: 2.21.55([email protected])([email protected])([email protected])([email protected])
|
||||
viem: 2.22.15([email protected])([email protected])([email protected])([email protected])
|
||||
zustand: 5.0.0(@types/[email protected])([email protected])([email protected]([email protected]))
|
||||
optionalDependencies:
|
||||
'@tanstack/query-core': 5.62.16
|
||||
@@ -23492,6 +23474,11 @@ snapshots:
|
||||
typescript: 5.7.2
|
||||
zod: 3.24.1
|
||||
|
||||
[email protected]([email protected])([email protected]):
|
||||
optionalDependencies:
|
||||
typescript: 5.7.2
|
||||
zod: 3.24.1
|
||||
|
||||
[email protected]:
|
||||
dependencies:
|
||||
event-target-shim: 5.0.1
|
||||
@@ -29398,19 +29385,19 @@ snapshots:
|
||||
|
||||
[email protected]: {}
|
||||
|
||||
[email protected]([email protected].3(@babel/[email protected])(@opentelemetry/[email protected])(@playwright/[email protected])([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected]):
|
||||
[email protected]([email protected].4(@babel/[email protected])(@opentelemetry/[email protected])(@playwright/[email protected])([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected]):
|
||||
dependencies:
|
||||
next: 15.1.3(@babel/[email protected])(@opentelemetry/[email protected])(@playwright/[email protected])([email protected]([email protected]))([email protected])
|
||||
next: 15.1.4(@babel/[email protected])(@opentelemetry/[email protected])(@playwright/[email protected])([email protected]([email protected]))([email protected])
|
||||
react: 19.0.0
|
||||
react-dom: 19.0.0([email protected])
|
||||
|
||||
[email protected]([email protected].3(@opentelemetry/[email protected])(@playwright/[email protected])([email protected]([email protected]))([email protected])):
|
||||
[email protected]([email protected].4(@opentelemetry/[email protected])(@playwright/[email protected])([email protected]([email protected]))([email protected])):
|
||||
dependencies:
|
||||
'@corex/deepmerge': 4.0.43
|
||||
'@next/env': 13.5.8
|
||||
fast-glob: 3.3.3
|
||||
minimist: 1.2.8
|
||||
next: 15.1.3(@babel/[email protected])(@opentelemetry/[email protected])(@playwright/[email protected])([email protected]([email protected]))([email protected])
|
||||
next: 15.1.4(@babel/[email protected])(@opentelemetry/[email protected])(@playwright/[email protected])([email protected]([email protected]))([email protected])
|
||||
|
||||
[email protected]([email protected]([email protected]))([email protected]):
|
||||
dependencies:
|
||||
@@ -29419,9 +29406,9 @@ snapshots:
|
||||
|
||||
[email protected]: {}
|
||||
|
||||
[email protected].3(@babel/[email protected])(@opentelemetry/[email protected])(@playwright/[email protected])([email protected]([email protected]))([email protected]):
|
||||
[email protected].4(@babel/[email protected])(@opentelemetry/[email protected])(@playwright/[email protected])([email protected]([email protected]))([email protected]):
|
||||
dependencies:
|
||||
'@next/env': 15.1.3
|
||||
'@next/env': 15.1.4
|
||||
'@swc/counter': 0.1.3
|
||||
'@swc/helpers': 0.5.15
|
||||
busboy: 1.6.0
|
||||
@@ -29431,14 +29418,14 @@ snapshots:
|
||||
react-dom: 19.0.0([email protected])
|
||||
styled-jsx: 5.1.6(@babel/[email protected])([email protected])
|
||||
optionalDependencies:
|
||||
'@next/swc-darwin-arm64': 15.1.3
|
||||
'@next/swc-darwin-x64': 15.1.3
|
||||
'@next/swc-linux-arm64-gnu': 15.1.3
|
||||
'@next/swc-linux-arm64-musl': 15.1.3
|
||||
'@next/swc-linux-x64-gnu': 15.1.3
|
||||
'@next/swc-linux-x64-musl': 15.1.3
|
||||
'@next/swc-win32-arm64-msvc': 15.1.3
|
||||
'@next/swc-win32-x64-msvc': 15.1.3
|
||||
'@next/swc-darwin-arm64': 15.1.4
|
||||
'@next/swc-darwin-x64': 15.1.4
|
||||
'@next/swc-linux-arm64-gnu': 15.1.4
|
||||
'@next/swc-linux-arm64-musl': 15.1.4
|
||||
'@next/swc-linux-x64-gnu': 15.1.4
|
||||
'@next/swc-linux-x64-musl': 15.1.4
|
||||
'@next/swc-win32-arm64-msvc': 15.1.4
|
||||
'@next/swc-win32-x64-msvc': 15.1.4
|
||||
'@opentelemetry/api': 1.9.0
|
||||
'@playwright/test': 1.49.1
|
||||
sharp: 0.33.5
|
||||
@@ -29446,9 +29433,9 @@ snapshots:
|
||||
- '@babel/core'
|
||||
- babel-plugin-macros
|
||||
|
||||
[email protected]([email protected].3(@opentelemetry/[email protected])(@playwright/[email protected])([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected]):
|
||||
[email protected]([email protected].4(@opentelemetry/[email protected])(@playwright/[email protected])([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected]):
|
||||
dependencies:
|
||||
next: 15.1.3(@babel/[email protected])(@opentelemetry/[email protected])(@playwright/[email protected])([email protected]([email protected]))([email protected])
|
||||
next: 15.1.4(@babel/[email protected])(@opentelemetry/[email protected])(@playwright/[email protected])([email protected]([email protected]))([email protected])
|
||||
nprogress: 0.2.0
|
||||
prop-types: 15.8.1
|
||||
react: 19.0.0
|
||||
@@ -29790,20 +29777,6 @@ snapshots:
|
||||
object-keys: 1.1.1
|
||||
safe-push-apply: 1.0.0
|
||||
|
||||
[email protected]([email protected])([email protected]):
|
||||
dependencies:
|
||||
'@adraffy/ens-normalize': 1.11.0
|
||||
'@noble/curves': 1.7.0
|
||||
'@noble/hashes': 1.6.1
|
||||
'@scure/bip32': 1.6.0
|
||||
'@scure/bip39': 1.5.0
|
||||
abitype: 1.0.7([email protected])([email protected])
|
||||
eventemitter3: 5.0.1
|
||||
optionalDependencies:
|
||||
typescript: 5.7.2
|
||||
transitivePeerDependencies:
|
||||
- zod
|
||||
|
||||
[email protected]([email protected])([email protected]):
|
||||
dependencies:
|
||||
'@adraffy/ens-normalize': 1.11.0
|
||||
@@ -29832,6 +29805,20 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- zod
|
||||
|
||||
[email protected]([email protected])([email protected]):
|
||||
dependencies:
|
||||
'@adraffy/ens-normalize': 1.11.0
|
||||
'@noble/curves': 1.7.0
|
||||
'@noble/hashes': 1.6.1
|
||||
'@scure/bip32': 1.6.2
|
||||
'@scure/bip39': 1.5.4
|
||||
abitype: 1.0.7([email protected])([email protected])
|
||||
eventemitter3: 5.0.1
|
||||
optionalDependencies:
|
||||
typescript: 5.7.2
|
||||
transitivePeerDependencies:
|
||||
- zod
|
||||
|
||||
[email protected]: {}
|
||||
|
||||
[email protected]:
|
||||
@@ -33054,16 +33041,15 @@ snapshots:
|
||||
d3-time: 3.1.0
|
||||
d3-timer: 3.0.1
|
||||
|
||||
[email protected]1.55([email protected])([email protected])([email protected])([email protected]):
|
||||
[email protected]2.15([email protected])([email protected])([email protected])([email protected]):
|
||||
dependencies:
|
||||
'@noble/curves': 1.7.0
|
||||
'@noble/hashes': 1.6.1
|
||||
'@scure/bip32': 1.6.0
|
||||
'@scure/bip39': 1.5.0
|
||||
abitype: 1.0.7([email protected])([email protected])
|
||||
'@noble/curves': 1.8.1
|
||||
'@noble/hashes': 1.7.1
|
||||
'@scure/bip32': 1.6.2
|
||||
'@scure/bip39': 1.5.4
|
||||
abitype: 1.0.8([email protected])([email protected])
|
||||
isows: 1.0.6([email protected]([email protected])([email protected]))
|
||||
ox: 0.1.2([email protected])([email protected])
|
||||
webauthn-p256: 0.0.10
|
||||
ox: 0.6.7([email protected])([email protected])
|
||||
ws: 8.18.0([email protected])([email protected])
|
||||
optionalDependencies:
|
||||
typescript: 5.7.2
|
||||
@@ -33226,14 +33212,14 @@ snapshots:
|
||||
|
||||
[email protected]: {}
|
||||
|
||||
[email protected](@tanstack/[email protected])(@tanstack/[email protected]([email protected]))(@types/[email protected])([email protected])([email protected])([email protected])([email protected])([email protected])([email protected])([email protected])([email protected]1.55([email protected])([email protected])([email protected])([email protected]))([email protected]):
|
||||
[email protected](@tanstack/[email protected])(@tanstack/[email protected]([email protected]))(@types/[email protected])([email protected])([email protected])([email protected])([email protected])([email protected])([email protected])([email protected])([email protected]2.15([email protected])([email protected])([email protected])([email protected]))([email protected]):
|
||||
dependencies:
|
||||
'@tanstack/react-query': 5.62.16([email protected])
|
||||
'@wagmi/connectors': 5.7.4(@types/[email protected])(@wagmi/[email protected](@tanstack/[email protected])(@types/[email protected])([email protected])([email protected])([email protected]([email protected]))([email protected]1.55([email protected])([email protected])([email protected])([email protected])))([email protected])([email protected])([email protected])([email protected])([email protected])([email protected])([email protected])([email protected]1.55([email protected])([email protected])([email protected])([email protected]))([email protected])
|
||||
'@wagmi/core': 2.16.3(@tanstack/[email protected])(@types/[email protected])([email protected])([email protected])([email protected]([email protected]))([email protected]1.55([email protected])([email protected])([email protected])([email protected]))
|
||||
'@wagmi/connectors': 5.7.4(@types/[email protected])(@wagmi/[email protected](@tanstack/[email protected])(@types/[email protected])([email protected])([email protected])([email protected]([email protected]))([email protected]2.15([email protected])([email protected])([email protected])([email protected])))([email protected])([email protected])([email protected])([email protected])([email protected])([email protected])([email protected])([email protected]2.15([email protected])([email protected])([email protected])([email protected]))([email protected])
|
||||
'@wagmi/core': 2.16.3(@tanstack/[email protected])(@types/[email protected])([email protected])([email protected])([email protected]([email protected]))([email protected]2.15([email protected])([email protected])([email protected])([email protected]))
|
||||
react: 19.0.0
|
||||
use-sync-external-store: 1.4.0([email protected])
|
||||
viem: 2.21.55([email protected])([email protected])([email protected])([email protected])
|
||||
viem: 2.22.15([email protected])([email protected])([email protected])([email protected])
|
||||
optionalDependencies:
|
||||
typescript: 5.7.2
|
||||
transitivePeerDependencies:
|
||||
@@ -33391,11 +33377,6 @@ snapshots:
|
||||
randombytes: 2.1.0
|
||||
utf8: 3.0.0
|
||||
|
||||
[email protected]:
|
||||
dependencies:
|
||||
'@noble/curves': 1.7.0
|
||||
'@noble/hashes': 1.6.1
|
||||
|
||||
[email protected]: {}
|
||||
|
||||
[email protected]: {}
|
||||
|
||||
Reference in New Issue
Block a user