bitte-ai-chat
Version:
Bitte AI chat component
1 lines • 345 kB
Source Map (JSON)
{"version":3,"sources":["../src/components/BitteAiChat.tsx","../src/lib/chat.ts","../src/lib/fetchChatHistory.ts","../src/components/AccountContext.tsx","../src/components/chat/ChatContent.tsx","../src/lib/utils.ts","../src/types/types.ts","../src/components/ui/button.tsx","../src/assets/bitte_animation.json","../src/components/chat/BitteSpinner.tsx","../src/components/chat/ChatInput.tsx","../src/components/ui/textarea.tsx","../src/components/chat/AgentPill.tsx","../src/components/chat/MessageGroup.tsx","../src/lib/constants.ts","../src/lib/regex.ts","../src/components/ui/accordion.tsx","../src/components/ui/card.tsx","../src/components/ui/ImageWithFallback.tsx","../src/components/chat/CodeBlock.tsx","../src/components/chat/ErrorBoundary.tsx","../src/components/chat/Message.tsx","../src/components/chat/MarkdownTable.tsx","../src/components/ui/table.tsx","../src/components/chat/ShareDropButton.tsx","../src/hooks/useIsClient.ts","../src/components/ui/modal/ShareModal.tsx","../src/hooks/useWindowSize.ts","../src/components/ui/dialog.tsx","../src/components/ui/drawer.tsx","../src/components/ui/input.tsx","../src/components/ui/label.tsx","../src/components/chat/transactions/EvmTxCard.tsx","../src/hooks/useTransaction.ts","../src/components/chat/CopyStandard.tsx","../src/components/chat/LoadingMessage.tsx","../src/components/chat/transactions/TransactionDetail.tsx","../src/components/chat/transactions/TransactionResult.tsx","../src/components/chat/transactions/ReviewTransaction.tsx","../src/hooks/useAccountBalance.ts","../src/hooks/useTxnFees.ts","../src/hooks/useTxnPrice.ts","../src/components/ui/badge.tsx","../src/components/chat/transactions/TxnBadge.tsx","../src/components/chat/transactions/TxnDetailMultipleAction.tsx","../src/components/chat/transactions/TxAccordion.tsx","../src/components/chat/transactions/multiple-transactions/MultipleTxnMultiAction.tsx","../src/components/chat/transactions/TxnDetail.tsx","../src/components/chat/transactions/multiple-transactions/MultipleTxnSingleAction.tsx","../src/components/chat/transactions/multiple-transactions/MultipleTxnDetail.tsx","../src/components/chat/transactions/ShowDetailsBtn.tsx","../src/components/chat/transactions/single-transaction/SingleTxnMultipleAction.tsx","../src/components/chat/transactions/single-transaction/SingleTxnSingleAction.tsx","../src/components/chat/transactions/single-transaction/SingleTxnDetail.tsx","../src/components/chat/transactions/TxnFees.tsx","../src/components/chat/transactions/TxnListWrapper.tsx"],"sourcesContent":["import { Message } from \"ai\";\nimport { useEffect, useState } from \"react\";\nimport { convertToUIMessages } from \"../lib/chat\";\nimport { fetchChatHistory } from \"../lib/fetchChatHistory\";\nimport { BitteAiChatProps } from \"../types/types\";\nimport { AccountProvider } from \"./AccountContext\";\nimport { ChatContent } from \"./chat/ChatContent\";\n\nexport const BitteAiChat = ({\n wallet,\n apiUrl,\n historyApiUrl,\n agentid,\n options,\n theme = \"dark\",\n}: BitteAiChatProps) => {\n const [loadedData, setLoadedData] = useState({\n agentIdLoaded: \"\",\n uiMessages: [] as Message[],\n });\n\n const chatId =\n typeof window !== \"undefined\" && sessionStorage.getItem(\"chatId\");\n\n console.log(\"pnpm link working 3 COLORs\");\n useEffect(() => {\n const fetchData = async () => {\n if (chatId && historyApiUrl) {\n const chat = await fetchChatHistory(chatId, historyApiUrl);\n if (chat) {\n const uiMessages = convertToUIMessages(chat.messages);\n setLoadedData({\n agentIdLoaded: chat.agentId,\n uiMessages: uiMessages,\n });\n }\n }\n };\n\n fetchData();\n }, [chatId, historyApiUrl]);\n\n const { agentIdLoaded, uiMessages } = loadedData;\n\n return (\n <AccountProvider wallet={wallet}>\n <div className={theme}>\n <ChatContent\n wallet={wallet}\n apiUrl={apiUrl}\n agentid={agentid ?? agentIdLoaded}\n messages={uiMessages}\n options={{\n agentName: options?.agentName,\n agentImage: options?.agentImage,\n chatId: options?.chatId ?? (chatId || undefined),\n }}\n />\n </div>\n </AccountProvider>\n );\n};\n","import {\n CoreAssistantMessage,\n CoreToolMessage,\n Message,\n ToolInvocation,\n convertToCoreMessages,\n generateId,\n} from \"ai\";\nimport {\n SmartActionAiMessage,\n SmartActionMessage,\n SmartAction,\n SmartActionChat,\n} from \"../types\";\n\nexport const convertToSmartActionMessages = ({\n messages,\n agentId,\n}: {\n messages: Message[];\n agentId?: string;\n}): SmartActionMessage[] => {\n const smartActionMessages = convertToCoreMessages(messages).map(\n (message, index) => ({\n ...message,\n id: messages[index]?.id,\n agentId,\n })\n );\n\n return smartActionMessages;\n};\n\nexport const convertResponseMessages = (\n messages: (CoreAssistantMessage | CoreToolMessage)[],\n agentId?: string\n): SmartActionMessage[] => {\n return messages.map((message) => ({\n ...message,\n id: generateId(),\n agentId,\n }));\n};\n\nexport const getAgentIdFromMessage = (\n message: SmartActionAiMessage\n): string | undefined => {\n const { annotations } = message;\n const agentIdAnnotation = annotations?.[0];\n\n if (agentIdAnnotation && typeof agentIdAnnotation === \"object\") {\n if (\n \"agentId\" in agentIdAnnotation &&\n typeof agentIdAnnotation.agentId === \"string\"\n ) {\n return agentIdAnnotation.agentId;\n }\n }\n};\n\nfunction addToolMessageToChat({\n toolMessage,\n messages,\n}: {\n toolMessage: CoreToolMessage;\n messages: Array<Message & { agentId?: string }>;\n}): Array<Message> {\n return messages.map((message) => {\n if (message.toolInvocations) {\n return {\n ...message,\n toolInvocations: message.toolInvocations.map((toolInvocation) => {\n const toolResult = toolMessage.content.find(\n (tool) => tool.toolCallId === toolInvocation.toolCallId\n );\n\n if (toolResult) {\n return {\n ...toolInvocation,\n state: \"result\",\n result: toolResult.result,\n };\n }\n\n return toolInvocation;\n }),\n annotations: message.agentId\n ? [{ agentId: message.agentId }]\n : undefined,\n };\n }\n\n return message;\n });\n}\n\nexport function convertToUIMessages(\n messages: Array<SmartActionMessage>\n): Array<Message> {\n return messages.reduce<Array<Message>>((chatMessages, message) => {\n const annotations = message.agentId\n ? [{ agentId: message.agentId }]\n : undefined;\n\n if (message.role === \"tool\") {\n return addToolMessageToChat({\n toolMessage: message,\n messages: chatMessages,\n });\n }\n\n let textContent = \"\";\n const toolInvocations: Array<ToolInvocation> = [];\n\n if (typeof message.content === \"string\") {\n textContent = message.content;\n } else if (Array.isArray(message.content)) {\n for (const content of message.content) {\n if (content.type === \"text\") {\n textContent += content.text;\n } else if (content.type === \"tool-call\") {\n toolInvocations.push({\n state: \"call\",\n toolCallId: content.toolCallId,\n toolName: content.toolName,\n args: content.args,\n });\n }\n }\n }\n\n chatMessages.push({\n id: message.id || generateId(),\n role: message.role,\n content: textContent,\n toolInvocations,\n annotations,\n });\n\n return chatMessages;\n }, []);\n}\n\nexport const getTypedToolInvocations = <TTools>(\n toolInvocation: ToolInvocation\n) => {\n type ExecuteArgs<T> = T extends {\n execute: (\n args: infer A,\n options?: {\n abortSignal?: AbortSignal;\n }\n ) => unknown;\n }\n ? A\n : never;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n type ExecuteReturn<T> = T extends { execute: (...args: any) => infer R }\n ? Awaited<R>\n : never;\n\n type TypedToolInvocation = {\n [T in keyof TTools]: Omit<\n ToolInvocation,\n \"toolName\" | \"args\" | \"result\"\n > & {\n toolName: T;\n args: ExecuteArgs<TTools[T]>;\n result: ExecuteReturn<TTools[T]>;\n };\n }[keyof TTools];\n\n const toolName = toolInvocation.toolName as keyof TTools;\n\n if (toolInvocation.state === \"result\") {\n const result = toolInvocation.result as ExecuteReturn<\n TTools[typeof toolName]\n >;\n return { ...toolInvocation, toolName, result } as TypedToolInvocation;\n }\n\n return { ...toolInvocation, toolName } as TypedToolInvocation;\n};\n","import { SmartActionChat } from \"../types\";\n\nexport const fetchChatHistory = async (\n id: string,\n url: string\n): Promise<SmartActionChat | null> => {\n try {\n const response = await fetch(`${url}?id=${id}`, {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n });\n\n if (!response.ok) {\n console.error(\"Failed to fetch chat history:\", response.statusText);\n return null;\n }\n\n const chat = await response.json();\n return chat;\n } catch (error) {\n console.error(\"Error fetching chat history:\", error);\n return null;\n }\n};\n","import { Wallet } from \"@near-wallet-selector/core\";\nimport { Account } from \"near-api-js\";\nimport React, {\n createContext,\n useContext,\n ReactNode,\n useState,\n useEffect,\n} from \"react\";\nimport { EVMWalletAdapter, WalletOptions } from \"../types\";\n\ninterface AccountContextType {\n wallet?: Wallet;\n account?: Account;\n accountId: string | null;\n evmWallet?: EVMWalletAdapter;\n evmAddress?: string;\n}\n\nconst AccountContext = createContext<AccountContextType | undefined>(undefined);\n\ninterface AccountProviderProps {\n children: ReactNode;\n wallet?: WalletOptions;\n}\n\nexport function AccountProvider({\n children,\n wallet: { near, evm } = {},\n}: AccountProviderProps) {\n const [accountId, setAccountId] = useState<string | null>(null);\n\n useEffect(() => {\n const getAccountId = async () => {\n if (!accountId && near?.wallet) {\n const accounts = await near.wallet.getAccounts();\n setAccountId(\n accounts?.[0]?.accountId || near.account?.accountId || null\n );\n }\n };\n getAccountId();\n }, [near, accountId]);\n\n useEffect(() => {\n if (!near?.account && !near?.wallet && !evm) {\n console.warn(\n \"No wallet or account configured - users will not be able to send transactions\"\n );\n }\n }, [near, evm]);\n\n return (\n <AccountContext.Provider\n value={{\n wallet: near?.wallet,\n account: near?.account,\n accountId,\n evmWallet: evm,\n evmAddress: evm?.address,\n }}\n >\n {children}\n </AccountContext.Provider>\n );\n}\n\nexport function useAccount() {\n const context = useContext(AccountContext);\n if (context === undefined) {\n throw new Error(\"useAccount must be used within an AccountProvider\");\n }\n return context;\n}\n\nexport function useWallet() {\n const context = useContext(AccountContext);\n if (context === undefined) {\n throw new Error(\"useWallet must be used within an AccountProvider\");\n }\n return context.wallet;\n}\n","import { generateId } from \"ai\";\nimport { Message, useChat } from \"ai/react\";\nimport { ArrowDown } from \"lucide-react\";\nimport React, {\n useCallback,\n useEffect,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { Hex } from \"viem\";\nimport { cn } from \"../../lib/utils\";\nimport {\n AssistantsMode,\n BitteAiChatProps,\n ChatRequestBody,\n} from \"../../types/types\";\nimport { useAccount } from \"../AccountContext\";\nimport { Button } from \"../ui/button\";\nimport { BitteSpinner } from \"./BitteSpinner\";\nimport { SmartActionsInput } from \"./ChatInput\";\nimport { MessageGroup } from \"./MessageGroup\";\n\nexport const ChatContent = ({\n agentid,\n apiUrl,\n options,\n messages: initialMessages,\n}: BitteAiChatProps) => {\n const chatId = useRef(options?.chatId || generateId()).current;\n const [isAtBottom, setIsAtBottom] = useState(true);\n const [autoScrollEnabled, setAutoScrollEnabled] = useState(true);\n const messagesRef = useRef<HTMLDivElement | null>(null);\n\n const { accountId, evmAddress } = useAccount();\n\n const {\n messages,\n input,\n handleInputChange,\n isLoading: isInProgress,\n handleSubmit,\n reload,\n error,\n } = useChat({\n id: chatId,\n api: apiUrl,\n onError: (e) => {\n console.error(e);\n },\n sendExtraMessageFields: true,\n initialMessages,\n body: {\n id: chatId,\n config: {\n mode: AssistantsMode.DEFAULT,\n agentId: agentid,\n },\n accountId: accountId || \"\",\n evmAddress: evmAddress as Hex,\n } satisfies ChatRequestBody,\n });\n\n const groupedMessages = useMemo(() => {\n return messages?.reduce<Message[][]>((groups, message) => {\n if (message.role === \"user\") {\n groups.push([message]);\n } else {\n const lastGroup = groups[groups.length - 1];\n if (!lastGroup || lastGroup[0].role === \"user\") {\n groups.push([message]);\n } else {\n lastGroup.push(message);\n }\n }\n return groups;\n }, []);\n }, [messages]);\n\n const scrollToBottom = useCallback((element: HTMLDivElement | null) => {\n if (element) {\n element.scrollTo({\n top: element.scrollHeight,\n behavior: \"smooth\",\n });\n }\n }, []);\n\n useLayoutEffect(() => {\n if (isAtBottom && autoScrollEnabled) {\n requestAnimationFrame(() => {\n scrollToBottom(messagesRef.current);\n });\n }\n }, [isAtBottom, autoScrollEnabled, scrollToBottom]);\n\n const handleSubmitChat = async (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault();\n handleSubmit(e);\n };\n\n const handleScroll = useCallback(() => {\n if (messagesRef.current) {\n const { scrollTop, scrollHeight, clientHeight } = messagesRef.current;\n const atBottom = scrollTop + clientHeight >= scrollHeight - 100;\n setIsAtBottom(atBottom);\n setAutoScrollEnabled(atBottom);\n }\n }, []);\n\n useEffect(() => {\n const scrollElement = messagesRef.current;\n if (scrollElement) {\n scrollElement.addEventListener(\"scroll\", handleScroll);\n handleScroll();\n }\n return () => {\n if (scrollElement) {\n scrollElement.removeEventListener(\"scroll\", handleScroll);\n }\n };\n }, [handleScroll]);\n\n const scrollToBottomHandler = useCallback(() => {\n scrollToBottom(messagesRef.current);\n setAutoScrollEnabled(true);\n }, [scrollToBottom]);\n\n return (\n <div className='flex h-full w-full flex-col gap-4 text-justify'>\n <div className='relative flex h-[400px] w-full grow-0 overflow-y-auto rounded-lg max-lg:flex-col lg:border lg:border-shad-gray-20 lg:bg-gray-30 lg:px-6'>\n {!isAtBottom ? (\n <Button\n size='icon'\n variant='outline'\n className='absolute bottom-2 left-1/2 -translate-x-1/2 rounded-full hover:bg-inherit'\n onClick={scrollToBottomHandler}\n >\n <ArrowDown className='h-4 w-4' />\n </Button>\n ) : null}\n\n <div\n ref={messagesRef}\n className='flex h-full w-full justify-center overflow-y-auto p-4'\n >\n <div\n className={cn(\n \"mx-auto flex w-full flex-col md:max-w-[480px] xl:max-w-[600px] 2xl:mx-56 2xl:max-w-[800px]\",\n !!agentid ? \"h-[calc(100%-240px)]\" : \"h-[calc(100%-208px)]\"\n )}\n >\n {messages.length === 0 && (\n <div className='flex h-full flex-col items-center justify-center'>\n <img src='/bitte_transparent.svg' className='mx-auto mb-4' />\n <div className='mb-14 text-[20px] font-medium text-gray-40'>\n Execute Transactions with AI\n </div>\n </div>\n )}\n <div className='flex w-full flex-col space-y-4 py-6'>\n {groupedMessages.map((messages: Message[]) => {\n const groupKey = `group-${messages?.[0]?.id}`;\n return (\n <MessageGroup\n chatId={chatId}\n key={groupKey}\n groupKey={groupKey}\n accountId={accountId!}\n messages={messages}\n isLoading={isInProgress}\n agentImage={options?.agentImage}\n agentName={options?.agentName}\n />\n );\n })}\n {error && (\n <div className='flex flex-col items-center justify-center space-y-2 px-6 pb-6 text-center text-sm'>\n {!accountId ? (\n <p>\n An error occurred. <br />\n Please connect your wallet and try again.\n </p>\n ) : (\n <>\n <p>An error occurred.</p>\n <Button\n type='button'\n variant='secondary'\n size='sm'\n onClick={() => reload()}\n >\n Retry\n </Button>\n </>\n )}\n </div>\n )}\n {isInProgress ? (\n <div className='flex w-full flex-col items-center justify-center text-gray-600'>\n <BitteSpinner width={100} height={100} />\n </div>\n ) : null}\n </div>\n </div>\n </div>\n </div>\n <div className='z-10 rounded-lg border border-shad-gray-20 bg-background p-6'>\n <SmartActionsInput\n input={input}\n handleChange={handleInputChange}\n handleSubmit={handleSubmitChat}\n isLoading={isInProgress}\n agentName={options?.agentName}\n />\n </div>\n </div>\n );\n};\n","import BN from \"bn.js\";\nimport { clsx, type ClassValue } from \"clsx\";\nimport { formatNearAmount } from \"near-api-js/lib/utils/format\";\nimport { twMerge } from \"tailwind-merge\";\nimport { Cost } from \"../types/types\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n\nexport const formatName = (name: string, size?: number) => {\n const nameSize = size ?? 19;\n\n return name?.length > nameSize ? `${name.slice(0, size ?? 20)}...` : name;\n};\n\nexport function errorString(error: unknown): string {\n if (error === undefined) {\n return \"Undefined Error\";\n }\n return error instanceof Error ? error.message : JSON.stringify(error);\n}\n\nexport function dynamicToFixed(value: number, maxDecimals: number = 6): string {\n const minValue = Math.pow(10, -maxDecimals);\n if (value === 0) {\n return \"0\";\n } else if (value < minValue) {\n return `< ${minValue.toFixed(maxDecimals)}`;\n } else if (value >= 1) {\n // If the value is greater than or equal to 1, show up to 2 decimal places\n return value.toFixed(2).replace(/\\.?0+$/, \"\");\n } else {\n // If the value is less than 1, find the first non-zero digit after the decimal\n const decimalPlaces = Math.min(\n Math.ceil(-Math.log10(value) + 1),\n maxDecimals\n );\n // Show decimal places up to the first non-zero digit, capped at maxDecimals\n return value.toFixed(decimalPlaces).replace(/\\.?0+$/, \"\");\n }\n}\n\nexport function shortenString(\n input: string,\n length: number,\n url?: boolean\n): string {\n if (input?.length <= length * 2) {\n return input;\n }\n\n if (url && input?.length) {\n const urlParts = input?.split(/(https?:\\/\\/|\\/|\\?|&|=)/);\n let currentLength = 0;\n let result = \"\";\n\n for (const part of urlParts) {\n const partLength = part.length;\n if (currentLength + partLength <= length) {\n result += part;\n currentLength += partLength;\n } else {\n const remaining = length - currentLength;\n result += part.substring(0, remaining);\n result += \"...\";\n break;\n }\n }\n\n return result;\n } else {\n const prefix = input?.slice(0, length);\n const suffix = input?.slice(-length);\n\n return `${prefix}...${suffix}`;\n }\n}\n\n// Safely parse JSON or return the input as-is; if parsing fails, return the default value\nexport function safeJsonParse<T>(input: unknown, defaultValue: T): T {\n try {\n const parsed = typeof input === \"string\" ? JSON.parse(input) : input;\n return typeof parsed === typeof defaultValue ? (parsed as T) : defaultValue;\n } catch (error) {\n console.error(\"Failed to parse JSON:\", error);\n return defaultValue;\n }\n}\n\nexport function removeTrailingZeros(value: string): string {\n const formattedValue = Number(value).toFixed(8); // Set the desired precision\n\n return formattedValue.replace(/\\.?0+$/, \"\");\n}\n\nexport const getNearblocksURL = (\n accountId: string,\n txnHash?: string,\n address?: string\n) => {\n const isTestnet = accountId?.includes(\"testnet\");\n const prefix = isTestnet ? \"testnet.\" : \"\";\n\n return !!address\n ? `https://${prefix}nearblocks.io/address/${address}`\n : `https://${prefix}nearblocks.io/txns/${txnHash}`;\n};\n\nexport function formatCosts(\n costs: Cost[] | null,\n gasPrice: string\n): { deposit: string; gas: string } {\n if (costs && costs[0]) {\n return {\n gas: removeTrailingZeros(\n formatNearAmount(costs[0].gas.mul(new BN(gasPrice)).toString(), 6)\n ),\n deposit: removeTrailingZeros(\n formatNearAmount(costs[0].deposit.toString(), 3)\n ),\n };\n }\n return { gas: \"0\", deposit: \"0\" };\n}\n","import { ReactNode } from \"react\";\n\nimport {\n FunctionCallAction,\n Transaction,\n TransferAction,\n Wallet,\n} from \"@near-wallet-selector/core\";\nimport { CoreMessage, CoreTool, JSONValue, Message } from \"ai\";\nimport { AssistantTool, FunctionTool } from \"openai/resources/beta/assistants\";\nimport { FunctionDefinition } from \"openai/resources/index\";\nimport { OpenAPIV3 } from \"openapi-types\";\n\nimport BN from \"bn.js\";\nimport { Account } from \"near-api-js/lib/account\";\nimport { Hex } from \"viem\";\nimport { BittePrimitiveName } from \"../lib/constants\";\nimport { TransactionOperation } from \"./transaction\";\n\nexport type BitteMetadata = {\n [key: string]: unknown;\n};\n\nexport type BittePrimitiveRef = {\n type: string;\n};\n\nexport type BitteOpenAPISpec = OpenAPIV3.Document & {\n \"x-mb\": {\n \"account-id\": string;\n assistant?: Pick<\n BitteAssistantConfig,\n \"name\" | \"description\" | \"instructions\" | \"tools\" | \"image\"\n > & {\n tools?: (AssistantTool | BittePrimitiveRef)[];\n };\n };\n};\n\nexport type ExecutionDefinition = {\n baseUrl: string;\n path: string;\n httpMethod: string;\n};\n\nexport type PluginToolSpec = {\n id: string;\n agentId: string;\n type: \"function\";\n function: FunctionDefinition;\n execution: ExecutionDefinition;\n verified: boolean;\n};\n\nexport type BitteToolSpec = PluginToolSpec | FunctionTool;\n\nexport type BitteToolWarning = {\n message: string;\n final: boolean;\n};\n\nexport type BitteToolResult<TResult = unknown> = {\n data: TResult | null;\n warnings: BitteToolWarning[] | null;\n error: Error | null;\n};\n\nexport type BitteToolExecutor<\n TArgs = Record<string, JSONValue>,\n TResult = unknown,\n> = (\n args: TArgs,\n metadata?: BitteMetadata\n) => Promise<BitteToolResult<TResult>>;\n\nexport type BitteToolRenderer<TArgs = unknown> = (\n args: TArgs,\n metadata?: BitteMetadata\n) => ReactNode | null;\n\nexport type BitteTool<TArgs = Record<string, JSONValue>, TResult = unknown> = {\n toolSpec: FunctionTool;\n execute: BitteToolExecutor<TArgs, TResult>;\n render?: BitteToolRenderer;\n};\n\n// TODO: Remove this once we have a better way to handle this.\nexport type AnyBitteTool = BitteTool<any>; // eslint-disable-line @typescript-eslint/no-explicit-any\n\nexport type BitteAssistantConfig = {\n id: string;\n name: string;\n accountId: string;\n description: string;\n instructions: string;\n verified: boolean;\n tools?: BitteToolSpec[];\n image?: string;\n};\n\nexport type BitteAssistant = Omit<BitteAssistantConfig, \"tools\"> & {\n toolSpecs?: FunctionTool[];\n tools?: Record<string, CoreTool>;\n};\n\nexport type FunctionDataMessage = {\n functionName: BittePrimitiveName | string;\n isPrimitive: boolean;\n description?: string;\n value: JSONValue;\n};\n\nexport type SmartAction = {\n id: string;\n agentId: string;\n message: string;\n creator: string;\n createdAt: number;\n};\n\nexport type SmartActionMessage = CoreMessage & {\n id?: string;\n agentId?: string;\n};\n\nexport type SmartActionAiMessage = Message & {\n id?: string;\n agentId?: string;\n};\n\nexport type SmartActionChat = SmartAction & {\n messages: SmartActionMessage[];\n};\n\nexport type SaveSmartAction = {\n agentId: string;\n creator: string;\n message: string;\n};\n\nexport type SaveSmartActionMessages = {\n id: string;\n agentId: string;\n creator: string;\n messages: SmartActionMessage[];\n};\n\ntype TransferTransaction = Omit<Transaction, \"actions\"> & {\n actions: Array<TransferAction>;\n};\n\nexport type AccountTransaction = Omit<Transaction, \"actions\"> & {\n actions: Array<FunctionCallAction | TransferAction>;\n};\n\nexport type SmartActionTransaction =\n | {\n args: Record<string, unknown> | string;\n contractName: string;\n deposit: string;\n gas: string;\n methodName: string;\n }\n | TransferTransaction;\n\nexport enum AssistantsMode {\n DEFAULT = \"default\",\n DEBUG = \"debug\",\n}\n\nexport enum Model {\n GPT4o = \"gpt4o\",\n Grok2 = \"grok2\",\n Sonnet = \"sonnet\",\n}\n\n/**\n * Props for the BitteAiChat component\n * @param agentid - ID of the AI agent to use for chat interactions\n * @param apiUrl - Internal API URL for chat communication (e.g. api/chat).\n * Used to proxy requests to bitte api to not expose api key.\n * @param wallet - Optional wallet configuration for allowing transactions through the component see {@link WalletOptions} for more details\n */\nexport interface BitteAiChatProps {\n agentid: string;\n apiUrl: string;\n historyApiUrl?: string;\n messages?: Message[];\n wallet?: WalletOptions;\n options?: {\n agentName?: string;\n agentImage?: string;\n chatId?: string;\n };\n theme?: \"dark\" | \"light\";\n}\n\n/**\n * Configuration options for wallet integrations\n *\n * For NEAR:\n * - Uses either near-api-js Account object for direct account access\n * - Or Wallet from near-wallet-selector for wallet integrations\n *\n * For EVM:\n * - Typically configured using wagmi hooks with WalletConnect:\n * - address: From useAppKitAccount() hook\n * - sendTransaction: From useSendTransaction() hook\n * - hash: Transaction hash returned after sending\n */\nexport type WalletOptions = {\n near?: {\n wallet?: Wallet; // From near-wallet-selector\n account?: Account; // From near-api-js\n };\n evm?: EVMWalletAdapter; // Interface matching wagmi hook outputs\n};\n\nexport type SelectedAgent = {\n id?: string;\n name?: string;\n};\n\nexport interface AssistantsRequestBody {\n threadId: string | null;\n message: string;\n accountId: string;\n kvId: string;\n config?: {\n mode?: AssistantsMode;\n agentId?: string;\n };\n}\n\nexport interface ChatRequestBody {\n id?: string;\n config?: {\n mode?: string;\n agentId?: string;\n model?: string;\n };\n accountId?: string;\n network?: string;\n evmAddress?: Hex;\n}\n\nexport type AllowlistedToken = {\n name: string;\n symbol: string;\n contractId: string;\n decimals: number;\n icon?: string;\n};\n\nexport interface EVMWalletAdapter {\n sendTransaction: (params: {\n to: string;\n value?: bigint;\n data?: string;\n from: string;\n gas?: bigint;\n }) => Promise<void>;\n address: string | undefined;\n hash?: string;\n}\n\nexport type GenerateImageResponse = {\n url: string;\n hash: string;\n};\n\nexport type TransactionListProps = {\n accountId: string;\n operation?: TransactionOperation;\n transaction: Transaction[];\n modifiedUrl: string;\n showDetails: boolean;\n showTxnDetail: boolean;\n setShowTxnDetail: (showTxnDetail: boolean) => void;\n costs: Cost[];\n gasPrice: string;\n};\n\nexport interface Cost {\n deposit: BN;\n gas: BN;\n}\n\nexport interface AccountCreationData {\n devicePublicKey: string;\n accountId: string;\n isCreated: boolean;\n txnHash?: string; // TODO - I believe this field is unused.\n}\n","import { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport * as React from \"react\";\nimport { cn } from \"../../lib/utils\";\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground hover:bg-primary/90\",\n destructive:\n \"bg-destructive text-destructive-foreground hover:bg-destructive/90\",\n outline:\n \"border border-input bg-background hover:bg-accent hover:text-accent-foreground\",\n secondary:\n \"bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n ghost: \"hover:bg-accent hover:text-accent-foreground\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default: \"h-10 px-4 py-2\",\n sm: \"h-9 rounded-md px-3\",\n lg: \"h-11 rounded-md px-8\",\n icon: \"h-10 w-10\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n);\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean;\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\";\n return (\n <Comp\n className={cn(buttonVariants({ variant, size, className }))}\n ref={ref}\n {...props}\n />\n );\n }\n);\nButton.displayName = \"Button\";\n\nexport { Button, buttonVariants };\n","{\n \"v\": \"5.12.1\",\n \"fr\": 29.9700012207031,\n \"ip\": 0,\n \"op\": 96.0000039101602,\n \"w\": 1080,\n \"h\": 1080,\n \"nm\": \"marcelokunze 3_v2\",\n \"ddd\": 0,\n \"assets\": [],\n \"layers\": [\n {\n \"ddd\": 0,\n \"ind\": 1,\n \"ty\": 3,\n \"nm\": \"Adjustment Layer 1\",\n \"sr\": 1,\n \"ks\": {\n \"o\": {\n \"a\": 0,\n \"k\": 100,\n \"ix\": 11\n },\n \"r\": {\n \"a\": 0,\n \"k\": 0,\n \"ix\": 10\n },\n \"p\": {\n \"a\": 0,\n \"k\": [\n 540,\n 540,\n 0\n ],\n \"ix\": 2,\n \"l\": 2\n },\n \"a\": {\n \"a\": 0,\n \"k\": [\n 540,\n 540,\n 0\n ],\n \"ix\": 1,\n \"l\": 2\n },\n \"s\": {\n \"a\": 0,\n \"k\": [\n 100,\n 100,\n 100\n ],\n \"ix\": 6,\n \"l\": 2\n }\n },\n \"ao\": 0,\n \"ef\": [\n {\n \"ty\": 5,\n \"nm\": \"Invert\",\n \"np\": 4,\n \"mn\": \"ADBE Invert\",\n \"ix\": 1,\n \"en\": 1,\n \"ef\": [\n {\n \"ty\": 7,\n \"nm\": \"Channel\",\n \"mn\": \"ADBE Invert-0001\",\n \"ix\": 1,\n \"v\": {\n \"a\": 0,\n \"k\": 1,\n \"ix\": 1\n }\n },\n {\n \"ty\": 0,\n \"nm\": \"Blend With Original\",\n \"mn\": \"ADBE Invert-0002\",\n \"ix\": 2,\n \"v\": {\n \"a\": 0,\n \"k\": 0,\n \"ix\": 2\n }\n }\n ]\n }\n ],\n \"ip\": -21.0000008553475,\n \"op\": 279.000011363903,\n \"st\": -21.0000008553475,\n \"bm\": 0\n },\n {\n \"ddd\": 0,\n \"ind\": 2,\n \"ty\": 4,\n \"nm\": \"star 1 Outlines\",\n \"sr\": 1,\n \"ks\": {\n \"o\": {\n \"a\": 0,\n \"k\": 100,\n \"ix\": 11\n },\n \"r\": {\n \"a\": 0,\n \"k\": 0,\n \"ix\": 10\n },\n \"p\": {\n \"a\": 0,\n \"k\": [\n 522.185,\n 483.019,\n 0\n ],\n \"ix\": 2,\n \"l\": 2\n },\n \"a\": {\n \"a\": 0,\n \"k\": [\n 41.269,\n 41.27,\n 0\n ],\n \"ix\": 1,\n \"l\": 2\n },\n \"s\": {\n \"a\": 1,\n \"k\": [\n {\n \"i\": {\n \"x\": [\n 0.15,\n 0.15,\n 0.15\n ],\n \"y\": [\n 1,\n 1,\n 1\n ]\n },\n \"o\": {\n \"x\": [\n 0.23,\n 0.23,\n 0.23\n ],\n \"y\": [\n 0,\n 0,\n 0\n ]\n },\n \"t\": 45,\n \"s\": [\n 0,\n 0,\n 100\n ]\n },\n {\n \"i\": {\n \"x\": [\n 0.15,\n 0.15,\n 0.15\n ],\n \"y\": [\n 1,\n 1,\n 1\n ]\n },\n \"o\": {\n \"x\": [\n 0.695,\n 0.695,\n 0.167\n ],\n \"y\": [\n 0,\n 0,\n 0\n ]\n },\n \"t\": 74,\n \"s\": [\n 100,\n 100,\n 100\n ]\n },\n {\n \"i\": {\n \"x\": [\n 0.667,\n 0.667,\n 0.667\n ],\n \"y\": [\n 1,\n 1,\n 1\n ]\n },\n \"o\": {\n \"x\": [\n 0.695,\n 0.695,\n 0.167\n ],\n \"y\": [\n 0,\n 0,\n 0\n ]\n },\n \"t\": 81,\n \"s\": [\n 100,\n 100,\n 100\n ]\n },\n {\n \"t\": 95.0000038694293,\n \"s\": [\n 0,\n 0,\n 100\n ]\n }\n ],\n \"ix\": 6,\n \"l\": 2\n }\n },\n \"ao\": 0,\n \"shapes\": [\n {\n \"ty\": \"gr\",\n \"it\": [\n {\n \"ind\": 0,\n \"ty\": \"sh\",\n \"ix\": 1,\n \"ks\": {\n \"a\": 0,\n \"k\": {\n \"i\": [\n [\n -0.883,\n -0.263\n ],\n [\n 0,\n 0\n ],\n [\n -0.503,\n -0.503\n ],\n [\n -0.203,\n -0.682\n ],\n [\n 0,\n 0\n ],\n [\n -0.739,\n -0.55\n ],\n [\n -0.921,\n 0\n ],\n [\n -0.738,\n 0.552\n ],\n [\n -0.264,\n 0.883\n ],\n [\n 0,\n 0\n ],\n [\n -0.503,\n 0.503\n ],\n [\n -0.681,\n 0.203\n ],\n [\n 0,\n 0\n ],\n [\n -0.551,\n 0.739\n ],\n [\n 0,\n 0.922\n ],\n [\n 0.551,\n 0.739\n ],\n [\n 0.883,\n 0.264\n ],\n [\n 0,\n 0\n ],\n [\n 0.503,\n 0.502\n ],\n [\n 0.203,\n 0.681\n ],\n [\n 0,\n 0\n ],\n [\n 0.739,\n 0.551\n ],\n [\n 0.922,\n 0\n ],\n [\n 0.739,\n -0.551\n ],\n [\n 0.263,\n -0.883\n ],\n [\n 0,\n 0\n ],\n [\n 0.503,\n -0.503\n ],\n [\n 0.681,\n -0.202\n ],\n [\n 0,\n 0\n ],\n [\n 0.551,\n -0.738\n ],\n [\n 0,\n -0.921\n ],\n [\n -0.551,\n -0.739\n ]\n ],\n \"o\": [\n [\n 0,\n 0\n ],\n [\n 0.681,\n 0.203\n ],\n [\n 0.503,\n 0.503\n ],\n [\n 0,\n 0\n ],\n [\n 0.263,\n 0.883\n ],\n [\n 0.739,\n 0.552\n ],\n [\n 0.922,\n 0\n ],\n [\n 0.739,\n -0.55\n ],\n [\n 0,\n 0\n ],\n [\n 0.203,\n -0.682\n ],\n [\n 0.503,\n -0.503\n ],\n [\n 0,\n 0\n ],\n [\n 0.883,\n -0.263\n ],\n [\n 0.551,\n -0.739\n ],\n [\n 0,\n -0.921\n ],\n [\n -0.551,\n -0.738\n ],\n [\n 0,\n 0\n ],\n [\n -0.681,\n -0.202\n ],\n [\n -0.503,\n -0.503\n ],\n [\n 0,\n 0\n ],\n [\n -0.264,\n -0.883\n ],\n [\n -0.738,\n -0.551\n ],\n [\n -0.921,\n 0\n ],\n [\n -0.739,\n 0.551\n ],\n [\n 0,\n 0\n ],\n [\n -0.203,\n 0.681\n ],\n [\n -0.503,\n 0.502\n ],\n [\n 0,\n 0\n ],\n [\n -0.883,\n 0.264\n ],\n [\n -0.551,\n 0.739\n ],\n [\n 0,\n 0.922\n ],\n [\n 0.551,\n 0.739\n ]\n ],\n \"v\": [\n [\n -37.962,\n 4.1\n ],\n [\n -14.089,\n 11.21\n ],\n [\n -12.285,\n 12.286\n ],\n [\n -11.21,\n 14.09\n ],\n [\n -4.1,\n 37.962\n ],\n [\n -2.557,\n 40.171\n ],\n [\n 0,\n 41.02\n ],\n [\n 2.557,\n 40.171\n ],\n [\n 4.101,\n 37.962\n ],\n [\n 11.21,\n 14.09\n ],\n [\n 12.285,\n 12.286\n ],\n [\n 14.089,\n 11.21\n ],\n [\n 37.962,\n 4.1\n ],\n [\n 40.171,\n 2.558\n ],\n [\n 41.019,\n 0\n ],\n [\n 40.171,\n -2.557\n ],\n [\n 37.962,\n -4.1\n ],\n [\n 14.089,\n -11.21\n ],\n [\n 12.285,\n -12.284\n ],\n [\n 11.21,\n -14.088\n ],\n [\n 4.101,\n -37.962\n ],\n [\n 2.557,\n -40.171\n ],\n [\n 0,\n -41.02\n ],\n [\n -2.557,\n -40.171\n ],\n [\n -4.1,\n -37.962\n ],\n [\n -11.21,\n -14.088\n ],\n [\n -12.285,\n -12.284\n ],\n [\n -14.089,\n -11.21\n ],\n [\n -37.962,\n -4.1\n ],\n [\n -40.171,\n -2.557\n ],\n [\n -41.019,\n 0\n ],\n [\n -40.171,\n 2.558\n ]\n ],\n \"c\": true\n },\n \"ix\": 2\n },\n \"nm\": \"Path 1\",\n \"mn\": \"ADBE Vector Shape - Group\",\n \"hd\": false\n },\n {\n \"ty\": \"fl\",\n \"c\": {\n \"a\": 0,\n \"k\": [\n 0,\n 0,\n 0,\n 1\n ],\n \"ix\": 4\n },\n \"o\": {\n \"a\": 0,\n \"k\": 100,\n \"ix\": 5\n },\n \"r\": 1,\n \"bm\": 0,\n \"nm\": \"Fill 1\",\n \"mn\": \"ADBE Vector Graphic - Fill\",\n \"hd\": false\n },\n {\n \"ty\": \"tr\",\n \"p\": {\n \"a\": 0,\n \"k\": [\n 41.269,\n 41.27\n ],\n \"ix\": 2\n },\n \"a\": {\n \"a\": 0,\n \"k\": [\n 0,\n 0\n ],\n \"ix\": 1\n },\n \"s\": {\n \"a\": 0,\n \"k\": [\n 100,\n 100\n ],\n \"ix\": 3\n },\n \"r\": {\n \"a\": 0,\n \"k\": 0,\n \"ix\": 6\n },\n \"o\": {\n \"a\": 0,\n \"k\": 100,\n \"ix\": 7\n },\n \"sk\": {\n \"a\": 0,\n \"k\": 0,\n \"ix\": 4\n },\n \"sa\": {\n \"a\": 0,\n \"k\": 0,\n \"ix\": 5\n },\n \"nm\": \"Transform\"\n }\n ],\n \"nm\": \"Group 1\",\n \"np\": 2,\n \"cix\": 2,\n \"bm\": 0,\n \"ix\": 1,\n \"mn\": \"ADBE Vector Group\",\n \"hd\": false\n }\n ],\n \"ip\": -21.0000008553475,\n \"op\": 279.000011363903,\n \"st\": -21.0000008553475,\n \"ct\": 1,\n \"bm\": 0\n },\n {\n \"ddd\": 0,\n \"ind\": 3,\n \"ty\": 4,\n \"nm\": \"star 2 Outlines\",\n \"sr\": 1,\n \"ks\": {\n \"o\": {\n \"a\": 0,\n \"k\": 100,\n \"ix\": 11\n },\n \"r\": {\n \"a\": 0,\n \"k\": 0,\n \"ix\": 10\n },\n \"p\": {\n \"a\": 1,\n \"k\": [\n {\n \"i\": {\n \"x\": 0.667,\n \"y\": 1\n },\n \"o\": {\n \"x\": 0.693,\n \"y\": 0\n },\n \"t\": 37,\n \"s\": [\n 540.525,\n 566.696,\n 0\n ],\n \"to\": [\n 9,\n 0,\n 0\n ],\n \"ti\": [\n -9,\n 0,\n 0\n ]\n },\n {\n \"i\": {\n \"x\": 0.667,\n \"y\": 0.667\n },\n \"o\": {\n \"x\": 0.333,\n \"y\": 0.333\n },\n \"t\": 62,\n \"s\": [\n 594.525,\n 566.696,\n 0\n ],\n \"to\": [\n 0,\n 0,\n 0\n ],\n \"ti\": [\n 0,\n 0,\n 0\n ]\n },\n {\n \"t\": 74.0000030140818,\n \"s\": [\n 594.525,\n 566.696,\n 0\n ]\n }\n ],\n \"ix\": 2,\n \"l\": 2\n },\n \"a\": {\n \"a\": 0,\n \"k\": [\n 204.258,\n 69.681,\n 0\n ],\n \"ix\": 1,\n \"l\": 2\n },\n \"s\": {\n \"a\": 1,\n \"k\": [\n {\n \"i\": {\n \"x\": [\n 0.1,\n 0.1,\n 0.1\n ],\n \"y\": [\n 1,\n 1,\n 1\n ]\n },\n \"o\": {\n \"x\": [\n 0.19,\n 0.19,\n 0.19\n ],\n \"y\": [\n 0,\n 0,\n 0\n ]\n },\n \"t\": 0,\n \"s\": [\n 0,\n 0,\n 100\n ]\n },\n {\n \"i\": {\n \"x\": [\n 0.1,\n 0.1,\n 0.1\n ],\n \"y\": [\n 1,\n 1,\n 1\n ]\n },\n \"o\": {\n \"x\": [\n 0.167,\n 0.167,\n 0.167\n ],\n \"y\": [\n 0,\n 0,\n 0\n ]\n },\n \"t\": 34,\n \"s\": [\n 100,\n 100,\n 100\n ]\n },\n {\n \"i\": {\n \"x\": [\n 0.315,\n 0.315,\n 0.833\n ],\n \"y\": [\n 1,\n 1,\n 1\n ]\n },\n \"o\": {\n \"x\": [\n 0.281,\n 0.281,\n 0.167\n ],\n \"y\": [\n 0,\n 0,\n 0\n ]\n },\n \"t\": 81,\n \"s\": [\n 100,\n 100,\n 100\n ]\n },\n {\n \"t\": 95.0000038694293,\n \"s\": [\n 0,\n 0,\n 100\n ]\n }\n ],\n \"ix\": 6,\n \"l\": 2\n }\n },\n \"ao\": 0,\n \"shapes\": [\n {\n \"ty\": \"gr\",\n \"it\": [\n {\n \"ind\": 0,\n \"ty\": \"sh\",\n \"ix\": 1,\n \"ks\": {\n \"a\": 1,\n \"k\": [\n {\n \"i\": {\n \"x\": 0.271,\n \"y\": 1\n },\n \"o\": {\n \"x\": 0.333,\n \"y\": 0\n },\n \"t\": 31,\n \"s\": [\n {\n \"i\": [\n [\n -1.495,\n -0.445\n ],\n [\n 0,\n 0\n ],\n [\n -0.851,\n -0.852\n ],\n [\n -0.344,\n -1.153\n ],\n [\n 0,\n 0\n ],\n [\n -1.25,\n -0.932\n ],\n [\n -1.561,\n 0\n ],\n [\n -1.251,\n 0.932\n ],\n [\n -0.445,\n 1.496\n ],\n [\n 0,\n 0\n ],\n [\n -0.852,\n 0.85\n ],\n [\n -1.153,\n 0.343\n ],\n [\n 0,\n 0\n ],\n [\n -0.933,\n 1.251\n ],\n [\n 0,\n 1.56\n ],\n [\n 0.932,\n 1.25\n ],\n [\n 1.496,\n 0.445\n ],\n [\n 0,\n 0\n ],\n [\n 0.85,\n 0.851\n ],\n [\n 0.344,\n 1.154\n ],\n [\n 0,\n 0\n ],\n [\n 1.251,\n 0.933\n ],\n [\n 1.559,\n 0\n ],\n [\n 1.25,\n -0.932\n ],\n [\n 0.445,\n -1.495\n ],\n [\n 0,\n 0\n ],\n [\n 0.851,\n -0.851\n ],\n [\n 1.153,\n -0.344\n ],\n [\n 0,\n 0\n ],\n [\n 0.932,\n -1.251\n ],\n [\n 0,\n -1.56\n ],\n [\n -0.933,\n -1.251\n ]\n ],\n \"o\": [\n [\n 0,\n 0\n ],\n [\n 1.153,\n 0.343\n ],\n [\n 0.851,\n 0.85\n ],\n [\n 0,\n 0\n ],\n [\n 0.445,\n 1.496\n ],\n [\n 1.25,\n 0.932\n ],\n [\n 1.559,\n 0\n ],\n [\n 1.251,\n -0.932\n ],\n [\n 0,\n 0\n ],\n [\n 0.344,\n -1.153\n ],\n [\n 0.85,\n -0.852\n ],\n [\n 0,\n 0\n ],\n [\n 1.496,\n -0.445\n ],\n [\n 0.932,\n -1.251\n ],\n [\n 0,\n -1.56\n ],\n [\n -0.933,\n -1.251\n ],\n [\n 0,\n 0\n ],\n [\n -1.153,\n -0.344\n ],\n [\n -0.852,\n -0.851\n ],\n [\n 0,\n 0\n ],\n [\n -0.445,\n -1.495\n ],\n [\n -1.251,\n -0.932\n ],\n [\n -1.561,\n 0\n ],\n [\n -1.25,\n 0.933\n ],\n [\n 0,\n 0\n ],\n [\n -0.344,\n 1.154\n ],\n [\n -0.851,\n 0.851\n ],\n [\n 0,\n 0\n ],\n [\n -1.495,\n 0.445\n ],\n [\n -0.933,\n 1.25\n ],\n [\n 0,\n 1.559\n ],\n [\n 0.932,\n 1.251\n ]\n ],\n \"v\": [\n [\n -0.834,\n 6.896\n ],\n [\n 44.729,\n 18.975\n ],\n [\n 47.783,\n 20.794\n ],\n [\n 49.603,\n 23.848\n ],\n [\n 61.637,\n 64.255\n ],\n [\n 64.249,\n 67.995\n ],\n [\n 68.578,\n 69.431\n ],\n [\n 72.906,\n 67.995\n ],\n [\n 75.518,\n 64.255\n ],\n [\n 87.551,\n 23.848\n ],\n [\n 89.372,\n 20.794\n ],\n [\n 92.425,\n 18.975\n ],\n [\n 132.833,\n 6.94\n ],\n [\n 136.572,\n 4.328\n ],\n [\n 138.008,\n 0\n ],\n [\n 136.572,\n -4.328\n ],\n [\n 132.833,\n -6.94\n ],\n [\n 92.425,\n -18.974\n ],\n [\n 89.372,\n -20.794\n ],\n [\n 87.551,\n -23.848\n ],\n [\n 75.518,\n -64.257\n ],\n [\n 72.906,\n -67.995\n ],\n [\n 68.578,\n -69.431\n ],\n [\n 64.249,\n -67.995\n ],\n [\n 61.637,\n -64.257\n ],\n [\n 49.603,\n -23.848\n ],\n [\n 47.783,\n -20.794\n ],\n [\n 44.729,\n -18.974\n ],\n [\n -0.834,\n -6.985\n ],\n [\n -4.572,\n -4.373\n ],\n [\n -6.008,\n -0.044\n ],\n [\n -4.572,\n 4.284\n ]\n ],\n \"c\": true\n }\n ]\n },\n {\n \"i\": {\n \"x\": 0.667,\n \"y\": 1\n },\n \"o\": {\n \"x\": 0.693,\n \"y\": 0\n },\n \"t\": 37,\n \"s\": [\n {\n \"i\": [\n [\n -1.495,\n -0.445\n ],\n [\n 0,\n 0\n ],\n [\n -0.851,\n -0.852\n ],\n [\n -0.344,\n -1.153\n ],\n [\n 0,\n 0\n ],\n [\n -1.25,\n -0.932\n ],\n [\n -1.561,\n 0\n ],\n [\n -1.251,\n 0.932\n ],\n [\n -0.445,\n 1.496\n ],\n [\n 0,\n 0\n ],\n [\n -0.852,\n 0.85\n ],\n [\n -1.153,\n 0.343\n ],\n [\n 0,\n 0\n ],\n [\n -0.933,\n 1.251\n ],\n [\n 0,\n 1.56\n ],\n [\n 0.932,\n 1.25\n ],\n [\n 1.496,\n 0.445\n ],\n [\n 0,\n 0\n ],\n [\n 0.85,\n 0.851\n ],\n [\n 0.344,\n 1.154\n ],\n [\n 0,\n 0\n ],\n [\n 1.251,\n 0.933\n ],\n [\n 1.559,\n 0\n ],\n [\n 1.25,\n -0.932\n ],\n [\n 0.445,\n -1.495\n ],\n [\n 0,\n 0\n ],\n [\n 0.851,\n -0.851\n ],\n [\n 1.153,\n -0.344\n ],\n [\n 0,\n 0\n ],\n [\n 0.932,\n -1.251\n ],\n [\n 0,\n -1.56\n ],\n [\n -0.933,\n -1.251\n ]\n ],\n \"o\": [\n [\n 0,\n 0\n ],\n [\n 1.153,\n 0.343\n ],\n [\n 0.851,\n 0.85\n ],\n [\n 0,\n 0\n ],\n [\n 0.445,\n 1.496\n ],\n [\n 1.25,\n 0.932\n ],\n [\n 1.559,\n 0\n ],\n [\n 1.251,\n -0.932\n ],\n [\n 0,\n 0\n ],\n [\n 0.344,\n -1.153\n ],\n [\n 0.85,\n -0.852\n ],\n [\n 0,\n 0\n ],\n [\n 1.496,\n -0.445\n ],\n [\n 0.932,\n -1.251\n ],\n [\n 0,\n -1.56\n ],\n [\n -0.933,\n -1.251\n ],\n [\n 0,\n 0\n ],\n [\n -1.153,\n -0.344\n ],\n [\n -0.852,\n -0.851\n ],\n [\n 0,\n 0\n ],\n [\n -0.445,\n -1.495\n ],\n [\n -1.251,\n -0.932\n ],\n [\n -1.561,\n 0\n ],\n [\n -1.25,\n 0.933\n ],\n [\n 0,\n 0\n ],\n [\n -0.344,\n 1.154\n ],\n [\n -0.851,\n 0.851\n ],\n [\n 0,\n 0\n ],\n [\n -1.495,\n 0.445\n ],\n [\n -0.933,\n 1.25\n ],\n [\n 0,\n 1.559\n ],\n [\n 0.932,\n 1.251\n ]\n ],\n \"v\": [\n [\n -0.834,\n 6.896\n ],\n [\n 44.729,\n 18.975\n ],\n [\n 47.783,\n 20.794\n ],\n [\n 49.603,\n 23.848\n ],\n [\n 61.637,\n 64.255\n ],\n [\n 64.249,\n 67.995\n ],\n [\n 68.578,\n 69.431\n ],\n [\n 72.906,\n 67.995\n ],\n [\n 75.518,\n 64.255\n ],\n [\n 87.551,\n 23.848\n ],\n [\n 89.372,\n 20.794\n ],\n [\n 92.425,\n 18.975\n ],\n [\n 132.833,\n 6.94\n ],\n [\n 136.572,\n 4.328\n ],\n [\n 138.008,\n 0\n ],\n [\n 136.572,\n -4.328\n ],\n [\n 132.833,\n -6.94\n ],\n [\n 92.425,\n -18.974\n ],\n [\n 89.372,\n -20.794\n ],\n [\n 87.551,\n -23.848\n ],\n [\n 75.518,\n -64.257\n ],\n [\n 72.906,\n -67.995\n ],\n [\n 68.578,\n -69.431\n ],\n [\n 64.249,\n -67.995\n ],\n [\n 61.637,\n -64.257\n ],\n [\n 49.603,\n -23.848\n ],\n [\n 47.783,\n -20.794\n ],\n [\n 44.729,\n -18.974\n ],\n [\n -0.834,\n -6.985\n ],\n [\n -4.572,\n -4.373\n ],\n [\n -6.008,\n -0.044\n ],\n [\n -4.572,\n 4.284\n ]\n ],\n \"c\": true\n }\n ]\n },\n {\n \"i\": {\n \"x\": 0.667,\n \"y\": 1\n },\n \"o\": {\n \"x\": 0.333,\n \"y\": 0\n },\n \"t\": 62,\n \"s\": [\n {\n \"i\": [\n [\n -1.495,\n -0.445\n ],\n [\n 0,\n 0\n ],\n [\n -0.851,\n -0.852\n ],\n [\n -0.344,\n -1.153\n ],\n [\n 0,\n 0\n ],\n [\n -1.25,\n -0.932\n ],\n [\n -1.561,\n 0\n ],\n [\n -1.251,\n 0.932\n ],\n [\n -0.445,\n 1.496\n ],\n [\n 0,\n 0\n ],\n [\n -0.852,\n 0.85\n ],\n [\n -1.153,\n 0.343\n ],\n [\n 0,\n 0\n ],\n [\n -0.933,\n 1.251\n ],\n [\n 0,\n 1.56\n ],\n [\n 0.932,\n 1.25\n ],\n [\n 1.496,\n 0.445\n ],\n [\n 0,\n 0\n ],\n [\n 0.85,\n 0.851\n ],\n [\n 0.344,\n 1.154\n ],\n [\n 0,\n 0\n ],\n [\n 1.251,\n 0.933\n ],\n [\n 1.559,\n 0\n ],\n [\n 1.25,\n -0.932\n ],\n [\n 0.445,\n -1.495\n ],\n [\n 0,\n 0\n ],\n [\n 0.851,\n -0.851\n ],\n [\n 1.153,\n -0.344\n ],\n [\n 0,\n 0\n ],\n [\n 0.932,\n -1.251\n ],\n [\n 0,\n -1.56\n ],\n [\n -0.933,\n -1.251\n ]\n ],\n \"o\": [\n [\n 0,\n 0\n ],\n [\n 1.153,\n 0.343\n ],\n [\n 0.851,\n 0.85\n ],\n [\n 0,\n 0\n ],\n [\n 0.445,\n 1.496\n ],\n [\n 1.25,\n 0.932\n ],\n [\n 1.559,\n 0\n ],\n [\n 1.251,\n -0.932\n ],\n [\n 0,\n 0\n ],\n [\n 0.344,\n -1.153\n ],\n [\n 0.85,\n -0.852\n ],\n [\n 0,\n 0\n ],\n [\n 1.496,\n -0.445\n ],\n [\n 0.932,\n -1.251\n ],\n [\n 0,\n -1.56\n ],\n [\n -0.933,\n -1.251\n ],\n [\n 0,\n 0\n ],\n [\n -1.153,\n -0.344\n ],\n [\n -0.852,\n -0.851\n ],\n [\n 0,\n 0\n ],\n [\n -0.445,\n -1.495\n ],\n [\n -1.251,\n -0.932\n ],\n [\n -1.561,\n 0\n ],\n [\n -1.25,\n 0.933\n ],\n [\n 0,\n 0\n ],\n [\n -0.344,\n 1.154\n ],\n [\n -0.851,\n 0.851\n ],\n [\n 0,\n 0\n ],\n [\n -1.495,\n 0.445\n ],\n [\n -0.933,\n 1.25\n ],\n [\n 0,\n 1.559\n ],\n [\n 0.932,\n 1.251\n ]\n ],\n \"v\": [\n [\n -132.834,\n 6.94\n ],\n [\n 44.729,\n 18.975\n ],\n [\n 47.783,\n 20.794\n ],\n [\n 49.603,\n 23.848\n ],\n [\n 61.637,\n 64.255\n ],\n [\n 64.249,\n 67.995\n ],\n [\n 68.578,\n 69.431\n ],\n [\n 72.906,\n 67.995\n ],\n [\n 75.518,\n 64.255\n ],\n [\n 87.551,\n 23.848\n ],\n [\n 89.372,\n 20.794\n ],\n [\n 92.425,\n 18.975\n ],\n [\n 132.833,\n 6.94\n ],\n [\n 136.572,\n 4.328\n ],\n [\n 138.008,\n 0\n ],\n [\n 136.572,\n -4.328\n ],\n [\n 132.833,\n -6.94\n ],\n [\n 92.425,\n -18.974\n ],\n [\n 89.372,\n -20.794\n ],\n [\n 87.551,\n -23.848\n ],\n [\n 75.518,\n -64.257\n ],\n [\n 72.906,\n -67.995\n ],\n [\n 68.578,\n -69.431\n ],\n [\n 64.249,\n -67.995\n ],\n [\n 61.637,\n -64.257\n ],\n [\n 49.603,\n -23.848\n ],\n [\n 47.783,\n -20.794\n ],\n [\n 44.729,\n -18.974\n ],\n [\n -132.834,\n -6.94\n ],\n [\n -136.572,\n -4.328\n ],\n [\n -138.008,\n 0.001\n ],\n [\n -136.572,\n 4.328\n ]\n ],\n \"c\": true\n }\n ]\n },\n {\n \"t\": 74.0000030140818,\n \"s\": [\n {\n \"i\": [\n [\n -1.495,\n -0.445\n ],\n [\n 0,\n 0\n ],\n [\n -0.851,\n -0.852\n ],\n [\n -0.344,\n -1.153\n ],\n [\n 0,\n 0\n ],\n [\n -1.25,\n -0.932\n ],\n [\n -1.561,\n 0\n ],\n [\n -1.251,\n 0.932\n ],\n [\n -0.445,\n 1.496\n ],\n [\n 0,\n 0\n ],\n [\n -0.852,\n 0.85\n ],\n [\n -1.153,\n 0.343\n ],\n [\n 0,\n 0\n ],\n [\n -0.933,\n 1.251\n ],\n [\n 0,\n 1.56\n ],\n [\n 0.932,\n 1.25\n ],\n [\n 1.496,\n 0.445\n ],\n [\n 0,\n 0\n ],\n [\n 0.85,\n 0.851\n ],\n [\n 0.344,\n 1.154\n ],\n [\n 0,\n 0\n ],\n [\n 1.251,\n 0.933\n ],\n [\n 1.559,\n 0\n ],\n [\n 1.25,\n -0.932\n ],\n [\n 0.445,\n -1.495\n ],\n [\n 0,\n 0\n ],\n [\n 0.851,\n -0.851\n ],\n [\n 1.153,\n -0.344\n ],\n [\n 0,\n 0\n ],\n [\n 0.932,\n -1.251\n ],\n [\n 0,\n -1.56\n ],\n [\n -0.933,\n -1.251\n ]\n ],\n \"o\": [\n [\n 0,\n 0\n ],\n [\n 1.153,\n 0.343\n ],\n [\n 0.851,\n 0.85\n ],\n [\n 0,\n 0\n ],\n [\n 0.445,\n 1.496\n ],\n [\n 1.25,\n 0.932\n ],\n [\n 1.559,\n 0\n ],\n [\n 1.251,\n -0.932\n ],\n [\n 0,\n 0\n ],\n [\n 0.344,\n -1.153\n ],\n [\n 0.85,\n -0.852\n ],\n [\n 0,\n 0\n ],\n [\n 1.496,\n -0.445\n ],\n [\n 0.932,\n -1.251\n ],\n [\n 0,\n -1.56\n ],\n [\n -0.933,\n -1.251\n ],\n [\n 0,\n 0\n ],\n [\n -1.153,\n -0.344\n ],\n [\n -0.852,\n -0.851\n ],\n [\n 0,\n 0\n ],\n [\n -0.445,\n -1.495\n ],\n [\n -1.251,\n -0.932\n ],\n [\n -1.561,\n 0\n ],\n [\n -1.25,\n 0.933\n ],\n [\n 0,\n 0\n ],\n [\n -0.344,\n 1.154\n ],\n [\n -0.851,\n 0.851\n ],\n [\n 0,\n 0\n ],\n [\n -1.495,\n 0.445\n ],\n [\n -0.933,\n 1.25\n ],\n [\n 0,\n 1.559\n ],\n [\n 0.932,\n 1.251\n ]\n ],\n \"v\": [\n [\n -132.834,\n 6.94\n ],\n [\n 44.729,\n 18.975\n ],\n [\n 47.783,\n 20.794\n ],\n [\n 49.603,\n 23.848\n ],\n [\n 61.637,\n 64.255\n ],\n [\n 64.249,\n 67.995\n ],\n [\n 68.578,\n 69.431\n ],\n [\n 72.906,\n 67.995\n ],\n [\n 75.518,\n 64.255\n ],\n [\n 87.551,\n 23.848\n ],\n [\n 89.372,\n 20.794\n ],\n [\n 92.425,\n 18.975\n ],\n [\n 132.833,\n 6.94\n ],\n [\n 136.572,\n 4.328\n ],\n [\n 138.008,\n 0\n ],\n [\n 136.572,\n -4.328\n ],\n [\n 132.833,\n -6.94\n ],\n [\n 92.425,\n -18.974\n ],\n [\n 89.372,\n -20.794\n ],\n [\n 87.551,\n -23.848\n ],\n [\n 75.518,\n -64.257\n ],\n [\n 72.906,\n -67.995\n ],\n [\n 68.578,\n -69.431\n ],\n [\n 64.249,\n -67.995\n ],\n [\n 61.637,\n -64.257\n ],\n [\n 49.603,\n -23.848\n ],\n [\n 47.783,\n -20.794\n ],\n [\n 44.729,\n -18.974\n ],\n [\n -132.834,\n -6.94\n ],\n [\n -136.572,\n -4.328\n ],\n [\n -138.008,\n 0.001\n ],\n [\n -136.572,\n 4.328\n ]\n ],\n \"c\": true\n }\n ]\n }\n ],\n \"ix\": 2\n },\n \"nm\": \"Path 1\",\n \"mn\": \"ADBE Vector Shape - Group\",\n \"hd\": false\n },\n {\n \"ty\": \"fl\",\n \"c\": {\n \"a\": 0,\n \"k\": [\n 0,\n 0,\n 0,\n 1\n ],\n \"ix\": 4\n },\n \"o\": {\n \"a\": 0,\n \"k\": 100,\n \"ix\": 5\n },\n \"r\": 1,\n \"bm\": 0,\n \"nm\": \"Fill 1\",\n \"mn\": \"ADBE Vector Graphic - Fill\",\n \"hd\": false\n },\n {\n \"ty\": \"tr\",\n \"p\": {\n \"a\": 0,\n \"k\": [\n 138.258,\n 69.681\n ],\n \"ix\": 2\n },\n \"a\": {\n \"a\": 0,\n \"k\": [\n 0,\n 0\n ],\n \"ix\": 1\n },\n \"s\": {\n \"a\": 0,\n \"k\": [\n 100,\n 100\n ],\n \"ix\": 3\n },\n \"r\": {\n \"a\": 0,\n \"k\": 0,\n \"ix\": 6\n },\n \"o\": {\n \"a\": 0,\n \"k\": 100,\n \"ix\": 7\n },\n \"sk\": {\n \"a\": 0,\n \"k\": 0,\n \"ix\": 4\n },\n \"sa\": {\n \"a\": 0,\n \"k\": 0,\n \"ix\": 5\n },\n \"nm\": \"Transform\"\n }\n ],\n \"nm\": \"Group 1\",\n \"np\": 2,\n \"cix\": 2,\n \"bm\": 0,\n \"ix\": 1,\n \"mn\": \"ADBE Vector Group\",\n \"hd\": false\n }\n ],\n \"ip\": -21.0000008553475,\n \"op\": 135.000005498663,\n \"st\": -21.0000008553475,\n \"ct\": 1,\n \"bm\": 0\n }\n ],\n \"markers\": [],\n \"props\": {}\n}","import bitteAnimation from \"./../../assets/bitte_animation.json\";\nimport Lottie from \"react-lottie-player/dist/LottiePlayerLight\";\n\nexport const BitteSpinner = ({\n width = 200,\n height = 200,\n}: {\n width?: number;\n height?: number;\n}) => {\n return (\n <div className='dark:invert'>\n <Lottie\n loop\n animationData={bitteAnimation}\n play\n speed={1.5}\n style={{ width, height }}\n />\n </div>\n );\n};\n","import { ArrowUp } from \"lucide-react\";\nimport React, { useEffect, useRef, useState } from \"react\";\nimport { Button } from \"../ui/button\";\nimport { Textarea } from \"../ui/textarea\";\nimport { AgentPill } from \"./AgentPill\";\n\ninterface SmartActionsInputProps {\n input: string;\n isLoading: boolean;\n agentName?: string;\n handleChange: (e: React.ChangeEvent<HTMLTextAreaElement>) => void;\n handleSubmit: (e: React.FormEvent<HTMLFormElement>) => void;\n}\n\nexport const SmartActionsInput = ({\n input,\n isLoading,\n agentName,\n handleChange,\n handleSubmit,\n}: SmartActionsInputProps) => {\n const agentNameRef = useRef<HTMLDivElement>(null);\n const [paddingLeft, setPaddingLeft] = useState<number>(16);\n const [previousAgentName, setPreviousAgentName] = useState(\"Select Agent\");\n\n useEffect(() => {\n if (agentNameRef.current) {\n setPaddingLeft(agentNameRef.current.offsetWidth + 16);\n } else {\n setPaddingLeft(16);\n }\n }, [agentName]);\n\n useEffect(() => {\n if (agentName && agentName !== previousAgentName) {\n setPreviousAgentName(agentName);\n }\n }, [agentName]);\n\n return (\n <form\n className='relative mb-0 flex w-full items-center justify-center gap-4 max-lg:flex-wrap'\n onSubmit={handleSubmit}\n >\n <div className='w-full relative'>\n {agentName ? (\n <AgentPill name={agentName} ref={agentNameRef} />\n ) : (\n <div\n ref={agentNameRef}\n className='w-fit rounded-full border text-gray-40 border-gray-40 border-dashed px-2 py-1 text-xs font-semibold uppercase absolute left-2 top-1/2 -translate-y-1/2 text-opacity-0'\n >\n {previousAgentName}\n </div>\n )}\n <Textarea\n placeholder='Message Smart Actions'\n style={{\n paddingLeft: `${paddingLeft}px`,\n }}\n className='h-[42px] w-full resize-none min-h-0'\n onChange={handleChange}\n onKeyDown={(e: React.KeyboardEvent<HTMLTextAreaElement>) => {\n if (e.key === \"Enter\" && !e.shiftKey) {\n e.preventDefault();\n handleSubmit(e as unknown as React.FormEvent<HTMLFormElement>);\n }\n }}\n value={input}\n />\n </div>\n <Button\n type='submit'\n disabled={!input || isLoading}\n className='h-[42px] w-full lg:w-[42px] p-0 disabled:opacity-20 bg-gray-800'\n >\n <ArrowUp className='h-[16px] w-[16px] hidden lg:block' />\n <span className='lg:hidden'>Send</span>\n </Button>\n </form>\n );\n};\n","import * as React from \"react\";\nimport { cn } from \"../../lib/utils\";\n\nexport interface TextareaProps\n extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {}\n\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(\n ({ className, style, ...props }, ref) => {\n return (\n <textarea\n className={cn(\n \"flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n ref={ref}\n {...props}\n />\n );\n }\n);\nTextarea.displayName = \"Textarea\";\n\nexport { Textarea };\n","import { forwardRef } from \"react\";\n\ninterface AgentPillProps {\n name: string;\n}\n\nexport const AgentPill = forwardRef<HTMLDivElement, AgentPillProps>(\n ({ name }, ref) => (\n <div\n ref={ref}\n className='w-fit rounded-full border border-dashed border-gray-40 px-2 py-1 text-xs font-semibold uppercase text-purple-100 absolute left-2 top-1/2 -translate-y-1/2'\n >\n {name}\n </div>\n )\n);\n\nAgentPill.displayName = \"AgentPill\";\n","import { MessageSquare } from \"lucide-react\";\n\nimport { NearSafe } from \"near-safe\";\n\nimport { Wallet } from \"@near-wallet-selector/core\";\nimport { Account } from \"near-api-js\";\nimport { cn } from \"../../lib/utils\";\n\nimport { getAgentIdFromMessage, getTypedToolInvocations } from \"../../lib/chat\";\nimport { BittePrimitiveName, DEFAULT_AGENT_ID } from \"../../lib/constants\";\nimport { isDataString } from \"../../lib/regex\";\nimport { SmartActionAiMessage } from \"../../types/types\";\nimport {\n Accordion,\n AccordionContent,\n AccordionItem,\n AccordionTrigger,\n} from \"../ui/accordion\";\nimport { Button } from \"../ui/button\";\nimport { Card } from \"../ui/card\";\nimport { ImageWithFallback } from \"../ui/ImageWithFallback\";\nimport { CodeBlock } from \"./CodeBlock\";\nimport { ErrorBoundary } from \"./ErrorBoundary\";\nimport { SAMessage } from \"./Message\";\nimport ShareDropButton from \"./ShareDropButton\";\nimport { EvmTxCard } from \"./transactions/EvmTxCard\";\nimport { ReviewTransaction } from \"./transactions/ReviewTransaction\";\n\ninterface MessageGroupProps {\n chatId: string | undefined;\n groupKey: string;\n messages: SmartActionAiMessage[];\n accountId: string;\n creator?: string;\n isLoading?: boolean;\n agentImage?: string;\n agentName?: string;\n evmAdapter?: NearSafe;\n account?: Account;\n wallet?: Wallet;\n}\n\nexport const MessageGroup = ({\n groupKey,\n messages,\n accountId,\n creator,\n isLoading,\n agentImage,\n agentName,\n chatId,\n}: MessageGroupProps) => {\n return (\n <div>\n {messages?.map((message, index) => {\n let agentId = getAgentIdFromMessage(message);\n\n if (!agentId) {\n agentId = DEFAULT_AGENT_ID;\n }\n\n const uniqueKey = `${groupKey}-${index}`;\n\n if (message.toolInvocations) {\n for (const invocation of message.toolInvocations) {\n const { toolName, state, result } = getTypedToolInvocations(\n invocation\n ) as {\n toolName: string;\n state: string;\n result: any;\n };\n\n if (state !== \"result\") {\n continue;\n }\n\n if (\n toolName === BittePrimitiveName.GENERATE_TRANSACTION ||\n toolName === BittePrimitiveName.TRANSFER_FT ||\n toolName === BittePrimitiveName.GENERATE_EVM_TX\n ) {\n const [transactions, evmSignRequest] =\n result.data && \"evmSignRequest\" in result.data\n ? [result.data.transactions, result.data.evmSignRequest]\n : [result.data.transactions, undefined];\n return (\n <ErrorBoundary key={`${groupKey}-${message.id}`}>\n {evmSignRequest ? (\n <EvmTxCard evmData={evmSignRequest} />\n ) : (\n <div className='my-6'>\n <ReviewTransaction\n chatId={chatId}\n creator={creator}\n transactions={transactions || []}\n warnings={result.warnings}\n evmData={evmSignRequest}\n agentId={agentId}\n walletLoading={isLoading}\n />\n </div>\n )}\n </ErrorBoundary>\n );\n }\n }\n }\n\n return (\n <Card className='p-6' key={`${message.id}-${index}`}>\n <Accordion\n type='single'\n collapsible\n className='w-full'\n defaultValue={uniqueKey}\n >\n <AccordionItem value={uniqueKey} className='border-0'>\n <AccordionTrigger className='p-0 hover:no-underline'>\n <div className='flex items-center justify-center gap-2'>\n {message.role === \"user\" ? (\n <>\n <MessageSquare className='h-[18px] w-[18px]' />\n <p className='text-[14px] text-shad-blue-100'>\n {creator || accountId}\n </p>\n </>\n ) : (\n <>\n <ImageWithFallback\n src={agentImage}\n fallbackSrc='/bitte-symbol-black.svg'\n className={cn(\n \"h-[18px] w-[18px] rounded\",\n agentImage === \"/bitte-symbol-black.svg\"\n ? \"invert-0 dark:invert\"\n : \"dark:bg-card-list\"\n )}\n alt={`${agentName} icon`}\n />\n <p className='text-[14px]'>\n {agentName ?? \"Bitte Assistant\"}\n </p>\n </>\n )}\n </div>\n </AccordionTrigger>\n\n <AccordionContent className='mt-6 border-t border-gray-40 pb-0'>\n <div className='mt-6 flex w-full flex-col gap-2'>\n {message.content && (\n <div className='flex flex-col gap-4 text-zinc-800 dark:text-zinc-300'>\n <SAMessage content={message.content} />\n </div>\n )}\n\n {message.toolInvocations?.map((toolInvocation, index) => {\n const { toolName, toolCallId, state, result } =\n getTypedToolInvocations(toolInvocation) as {\n toolCallId: string;\n toolName: string;\n state: string;\n result: any;\n };\n\n return (\n <div key={`${toolCallId}-${index}`}>\n <div className='flex w-full items-center justify-between text-[12px] text-text-secondary'>\n <div>Tool Call</div>\n <div className='rounded bg-shad-white-10 px-2 py-1'>\n <code>{toolName}</code>\n </div>\n </div>\n <div className='p-4'>\n {(() => {\n if (state === \"result\") {\n switch (toolName) {\n case BittePrimitiveName.GENERATE_IMAGE: {\n return (\n <img\n src={result.data?.url}\n className='w-full'\n />\n );\n }\n case BittePrimitiveName.CREATE_DROP: {\n return (\n <div className='flex items-center justify-center gap-2'>\n <Button asChild variant='link'>\n <a\n href={`/claim/${result.data}`}\n target='_blank'\n >\n View Drop\n </a>\n </Button>\n <ShareDropButton\n dropId={result.data || \"\"}\n />\n </div>\n );\n }\n default: {\n const stringifiedData = JSON.stringify(\n result.data\n );\n return isDataString(stringifiedData) ? (\n <CodeBlock content={stringifiedData} />\n ) : (\n <div>{stringifiedData}</div>\n );\n }\n }\n }\n })()}\n </div>\n\n <div className='mt-2 border-t border-gray-40' />\n </div>\n );\n })}\n </div>\n </AccordionContent>\n </AccordionItem>\n </Accordion>\n </Card>\n );\n })}\n </div>\n );\n};\n","export const RPC_URL = \"https://rpc.mainnet.near.org\";\n\nexport const OPEN_API_SPEC_PATH = \".well-known/ai-plugin.json\";\n\nexport const PLUGINS_COLLECTION = \"ai-plugins\";\nexport const ASSISTANTS_COLLECTION = \"ai-assistants\";\nexport const TOOLS_COLLECTION = \"ai-tools\";\nexport const API_KEYS_COLLECTION = \"ai-api-keys\";\n\nexport const DEFAULT_MODEL = \"gpt-4o\";\nexport const DEFAULT_ASSISTANT_ID = \"asst_9akhoUCRuq2fi36e1aSDVv4e\";\nexport const DEFAULT_AGENT_ID = \"bitte-assistant\";\nexport const DISCOVERY_ASSISTANT_ID = \"asst_5mlinuGadyp8PiI8203Uvh3C\";\nexport const DISCOVERY_VECTOR_STORE_ID = \"vs_iv6JjMEYtBVnQ91MVqS0PwTs\";\n\nexport const PLUGINS_OAI_VECTOR_STORE = \"oai-vector-store-ai-plugins\";\nexport const ASSISTANTS_OAI_VECTOR_STORE = \"oai-vector-store-ai-assistants\";\nexport const TOOLS_OAI_VECTOR_STORE = \"oai-vector-store-ai-tools\";\n\nexport enum BittePrimitiveName {\n TRANSFER_FT = \"transfer-ft\",\n GENERATE_TRANSACTION = \"generate-transaction\",\n SUBMIT_QUERY = \"submit-query\",\n GENERATE_IMAGE = \"generate-image\",\n CREATE_DROP = \"create-drop\",\n GET_SWAP_TRANSACTIONS = \"getSwapTransactions\",\n GET_TOKEN_METADATA = \"getTokenMetadata\",\n GENERATE_EVM_TX = \"generate-evm-tx\",\n}\n","export const isMarkdownTableString = (message: string) => {\n // Match a line that starts with a pipe (|)and includes at least one more pipe\n const regex = /^\\|.*\\|.*$/gm;\n\n return regex.test(message);\n};\n\nexport const isDataString = (str: string): boolean => {\n const cleaned = str\n .replace(/\\\\n/g, \"\") // Remove escaped newlines\n .replace(/\\s+/g, \" \") // Replace multiple whitespace with single space\n .replace(/['\"]/g, \"\") // Remove quotes\n .trim();\n\n // Match a string that starts with {, [, or contains :\n const regex = /^\\s*[{\\[]|:\\s*/;\n return regex.test(cleaned);\n};\n","import * as AccordionPrimitive from \"@radix-ui/react-accordion\";\nimport { ChevronDown } from \"lucide-react\";\nimport * as React from \"react\";\nimport { cn } from \"../../lib/utils\";\n\nconst Accordion = AccordionPrimitive.Root;\n\nconst AccordionItem = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Item>\n>(({ className, ...props }, ref) => (\n <AccordionPrimitive.Item\n ref={ref}\n className={cn(\"border-b\", className)}\n {...props}\n />\n));\nAccordionItem.displayName = \"AccordionItem\";\n\nconst AccordionTrigger = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <AccordionPrimitive.Header className='flex'>\n <AccordionPrimitive.Trigger\n ref={ref}\n className={cn(\n \"flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronDown className='h-4 w-4 shrink-0 transition-transform duration-200' />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n));\nAccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName;\n\nconst AccordionContent = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Content>\n>(({ className, children, style, ...props }, ref) => (\n <AccordionPrimitive.Content\n ref={ref}\n className='overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down'\n {...props}\n >\n <div className={cn(\"pb-4 pt-0\", className)}>{children}</div>\n </AccordionPrimitive.Content>\n));\n\nAccordionContent.displayName = AccordionPrimitive.Content.displayName;\n\nexport { Accordion, AccordionContent, AccordionItem, AccordionTrigger };\n","import * as React from \"react\";\nimport { cn } from \"../../lib/utils\";\n\nconst Card = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, style, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"rounded-lg border bg-card shadow-sm\", className)}\n {...props}\n />\n));\nCard.displayName = \"Card\";\n\nconst CardHeader = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, style, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex flex-col space-y-1.5 p-6\", className)}\n {...props}\n />\n));\nCardHeader.displayName = \"CardHeader\";\n\nconst CardTitle = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"text-2xl font-semibold leading-none tracking-tight\",\n className\n )}\n {...props}\n />\n));\nCardTitle.displayName = \"CardTitle\";\n\nconst CardDescription = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n));\nCardDescription.displayName = \"CardDescription\";\n\nconst CardContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"p-6 pt-0\", className)} {...props} />\n));\nCardContent.displayName = \"CardContent\";\n\nconst CardFooter = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex items-center p-6 pt-0\", className)}\n {...props}\n />\n));\nCardFooter.displayName = \"CardFooter\";\n\nexport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle\n};\n\n","import { useEffect, useState } from \"react\";\n\ninterface ImageWithFallbackProps {\n fallbackSrc: string;\n src?: string;\n alt: string;\n className: string;\n}\n\nexport const ImageWithFallback = ({\n fallbackSrc,\n alt,\n src,\n className,\n}: ImageWithFallbackProps) => {\n const [error, setError] = useState(false);\n\n useEffect(() => {\n setError(false);\n }, [src]);\n\n return (\n <img\n alt={alt}\n onError={() => setError(true)}\n src={error ? fallbackSrc : src}\n className={className}\n />\n );\n};\n","import React from \"react\";\n\ninterface CodeBlockProps {\n content: string;\n}\n\nexport const CodeBlock = ({ content }: CodeBlockProps) => {\n return (\n <div className='w-full'>\n <pre className='disable-scrollbars w-full overflow-x-auto rounded-lg bg-secondary p-4 text-secondary-foreground'>\n <code\n className='block w-[400px] font-mono text-sm'\n aria-label='Code example'\n >\n {content}\n </code>\n </pre>\n </div>\n );\n};\n","import React from \"react\";\n\ninterface Props {\n children: React.ReactNode;\n}\n\ninterface State {\n hasError: boolean;\n}\n\nexport class ErrorBoundary extends React.Component<Props, State> {\n state = { hasError: false };\n\n static getDerivedStateFromError(): State {\n return { hasError: true };\n }\n\n componentDidCatch(error: Error) {\n console.error(\"Generationerror:\", error);\n }\n\n render() {\n if (this.state.hasError) {\n return (\n <p className='my-6 overflow-auto text-center text-text-secondary'>\n Something went wrong\n </p>\n );\n }\n\n return this.props.children;\n }\n}\n","import React, { FC, memo } from \"react\";\n\nimport ReactMarkdown, { Options } from \"react-markdown\";\nimport remarkGfm from \"remark-gfm\";\nimport remarkMath from \"remark-math\";\nimport { MarkdownTable } from \"./MarkdownTable\";\nimport { isMarkdownTableString } from \"../../lib/regex\";\n\nconst MemoizedReactMarkdown: FC<Options> = memo(\n ReactMarkdown,\n (prevProps, nextProps) =>\n prevProps.children === nextProps.children &&\n prevProps.className === nextProps.className\n);\n\nconst LinkRenderer = ({\n href,\n children,\n ...props\n}: React.AnchorHTMLAttributes<HTMLAnchorElement>) => {\n return (\n <a\n href={href as string}\n target='_blank'\n rel='noopener noreferrer'\n className='text-blue-300'\n {...props}\n >\n {children}\n </a>\n );\n};\n\nexport const SAMessage = memo(({ content }: { content: string }) => {\n return isMarkdownTableString(content) ? (\n <MarkdownTable content={content} />\n ) : (\n <MemoizedReactMarkdown\n className='prose dark:prose-invert prose-p:leading-relaxed prose-pre:p-0 break-words'\n remarkPlugins={[remarkGfm, remarkMath]}\n components={{\n a: LinkRenderer,\n }}\n >\n {content}\n </MemoizedReactMarkdown>\n );\n});\n\nSAMessage.displayName = \"SAMessage\";\n","import { ArrowUpRight } from \"lucide-react\";\nimport { Button } from \"../ui/button\";\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n} from \"../ui/table\";\n\nconst IMAGE_API =\n \"https://image-cache-service-z3w7d7dnea-ew.a.run.app/media?url=\";\n\nexport const MarkdownTable = ({ content }: { content: string }) => {\n // Split the markdown string into lines\n const lines = content.split(\"\\n\");\n\n // Filter out the lines that are part of the table\n const tableLines = lines.filter(\n (line) => line.startsWith(\"|\") && !line.includes(\"---\")\n );\n\n // Split each line into cells\n const cells = tableLines.map((line) =>\n line\n .split(\"|\")\n .slice(1, -1)\n .map((cell) => cell.trim())\n );\n\n return (\n <Table className='mt-4 w-full'>\n <TableHeader>\n <TableRow className='border-none hover:bg-transparent'>\n {cells[0].map((header, index) => (\n <TableHead\n key={index}\n className='whitespace-nowrap px-4 text-left text-[12px] font-medium'\n >\n {header}\n </TableHead>\n ))}\n </TableRow>\n </TableHeader>\n <TableBody>\n {cells.slice(1).map((row, rowIndex) => (\n <TableRow key={rowIndex} className='border-none hover:bg-transparent'>\n {row.map((cell, cellIndex) => {\n const linkMatchQuery = cell.match(/\\[Link\\]\\((.*)\\)/);\n const linkValue = linkMatchQuery?.[1];\n const imageMatchQuery = cell.match(/!\\[.*\\]\\((.*)\\)/);\n const imageMatch = imageMatchQuery?.[1];\n const imageValue = imageMatch?.startsWith(\"https://\")\n ? imageMatch\n : \"/bitte-symbol-black.svg\";\n\n return (\n <TableCell\n key={cellIndex}\n className='whitespace-nowrap px-4 text-left'\n >\n <div className='max-w-[250px] break-words'>\n {linkValue ? (\n <a href={linkValue} target='_blank'>\n <Button\n variant='ghost'\n className='flex items-center gap-2 p-0 text-shad-blue-100 hover:text-shad-blue-100'\n >\n View\n <ArrowUpRight className='h-4 w-4' />\n </Button>\n </a>\n ) : imageMatch ? (\n <div className='relative h-24 w-24'>\n <img\n src={`${IMAGE_API}${imageValue}`}\n alt={`result-${cellIndex}`}\n />\n </div>\n ) : (\n <div className='truncate'>{cell}</div>\n )}\n </div>\n </TableCell>\n );\n })}\n </TableRow>\n ))}\n </TableBody>\n </Table>\n );\n};\n","import * as React from \"react\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst Table = React.forwardRef<\n HTMLTableElement,\n React.HTMLAttributes<HTMLTableElement>\n>(({ className, ...props }, ref) => (\n <div className='relative w-full overflow-auto'>\n <table\n ref={ref}\n className={cn(\"w-full caption-bottom text-sm\", className)}\n {...props}\n />\n </div>\n));\nTable.displayName = \"Table\";\n\nconst TableHeader = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <thead ref={ref} className={cn(\"[&_tr]:border-b\", className)} {...props} />\n));\nTableHeader.displayName = \"TableHeader\";\n\nconst TableBody = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tbody\n ref={ref}\n className={cn(\"[&_tr:last-child]:border-0\", className)}\n {...props}\n />\n));\nTableBody.displayName = \"TableBody\";\n\nconst TableFooter = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tfoot\n ref={ref}\n className={cn(\n \"border-t bg-muted/50 font-medium [&>tr]:last:border-b-0\",\n className\n )}\n {...props}\n />\n));\nTableFooter.displayName = \"TableFooter\";\n\nconst TableRow = React.forwardRef<\n HTMLTableRowElement,\n React.HTMLAttributes<HTMLTableRowElement>\n>(({ className, ...props }, ref) => (\n <tr\n ref={ref}\n className={cn(\n \"border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted\",\n className\n )}\n {...props}\n />\n));\nTableRow.displayName = \"TableRow\";\n\nconst TableHead = React.forwardRef<\n HTMLTableCellElement,\n React.ThHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <th\n ref={ref}\n className={cn(\n \"h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0\",\n className\n )}\n {...props}\n />\n));\nTableHead.displayName = \"TableHead\";\n\nconst TableCell = React.forwardRef<\n HTMLTableCellElement,\n React.TdHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <td\n ref={ref}\n className={cn(\"p-4 align-middle [&:has([role=checkbox])]:pr-0\", className)}\n {...props}\n />\n));\nTableCell.displayName = \"TableCell\";\n\nconst TableCaption = React.forwardRef<\n HTMLTableCaptionElement,\n React.HTMLAttributes<HTMLTableCaptionElement>\n>(({ className, ...props }, ref) => (\n <caption\n ref={ref}\n className={cn(\"mt-4 text-sm text-muted-foreground\", className)}\n {...props}\n />\n));\nTableCaption.displayName = \"TableCaption\";\n\nexport {\n Table,\n TableHeader,\n TableBody,\n TableFooter,\n TableHead,\n TableRow,\n TableCell,\n TableCaption,\n};\n","import React, { useMemo } from \"react\";\n\nimport { Share } from \"lucide-react\";\nimport { useIsClient } from \"../../hooks/useIsClient\";\nimport ShareModal from \"../ui/modal/ShareModal\";\nimport { Button } from \"../ui/button\";\n\ninterface ShareDropButtonProps {\n dropId: string;\n isSuccess?: boolean;\n isActions?: boolean;\n isApps?: boolean;\n hoverState?: string | null;\n}\n\nconst ShareDropButton: React.FC<ShareDropButtonProps> = ({\n dropId,\n isSuccess,\n isActions,\n isApps,\n hoverState,\n}) => {\n const isClient = useIsClient();\n\n const shareLink = useMemo(\n () => (isClient ? `${window.location.origin}/claim/${dropId}` : \"\"),\n [isClient, dropId]\n );\n\n return (\n <ShareModal\n title='Share Token Drop'\n subtitle='Anyone who has this link and an Bitte Wallet account will be\n able to mint this token drop.'\n shareLink={shareLink}\n shareText='Check my Token Drop on Bitte Wallet!'\n trigger={\n isActions ? (\n <span\n className={`flex cursor-pointer items-center gap-1 ${\n isApps ? \"text-white\" : \"text-gray-800\"\n }`}\n >\n <Share size={16} color={isApps ? \"#FFFFFF\" : \"#0f172a\"} />\n Share\n </span>\n ) : isApps ? (\n <div\n className={`flex cursor-pointer items-center justify-center rounded-md border border-[#313E52] px-2 py-1 ease-out hover:border-none ${\n hoverState === dropId\n ? \"border-none bg-white\"\n : \"bg-[#414D7D40] backdrop-blur-sm\"\n } transition-all duration-500 ease-in-out`}\n >\n <p\n className={`text-sm font-normal ${\n hoverState === dropId ? \"text-black\" : \"text-white\"\n }`}\n >\n Share\n </p>\n </div>\n ) : (\n <Button\n className={\n !isSuccess\n ? \"hover:bg-shad-slate-30 font-semi-bold bg-shad-white-10 text-gray-800\"\n : \"w-full bg-transparent\"\n }\n {...(isSuccess && { variant: \"outline\" })}\n >\n Share\n </Button>\n )\n }\n />\n );\n};\n\nexport default ShareDropButton;\n","import { useEffect, useState } from \"react\";\n\nexport const useIsClient = () => {\n const [isClient, setIsClient] = useState(false);\n useEffect(() => {\n setIsClient(true);\n }, []);\n return isClient;\n};\n","import React, { useState } from \"react\";\n\nimport { useWindowSize } from \"../../../hooks/useWindowSize\";\nimport { Button } from \"../button\";\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogHeader,\n DialogTitle,\n DialogTrigger,\n} from \"../dialog\";\nimport { Drawer, DrawerContent, DrawerFooter } from \"../drawer\";\nimport { Input } from \"../input\";\nimport { Label } from \"../label\";\n\ninterface ShareModalProps {\n title: string;\n shareText: string;\n trigger: JSX.Element;\n shareLink: string;\n subtitle?: string;\n}\n\nconst ShareModal: React.FC<ShareModalProps> = ({\n title,\n shareText,\n trigger,\n shareLink,\n subtitle,\n}) => {\n const [open, setOpen] = useState(false);\n const [showLinkCopiedText, setShowLinkCopiedText] = useState(false);\n\n const { width } = useWindowSize();\n const isMobile = !!width && width < 640;\n\n const social = {\n twitter: `https://twitter.com/intent/tweet?url=${shareLink}&text=${shareText}`,\n facebook: `https://www.facebook.com/sharer/sharer.php?u=${shareLink}`,\n telegram: `https://telegram.me/share/url?url=${shareLink}&text=${shareText}`,\n };\n\n const handleCopyLink = async () => {\n const url = new URL(shareLink);\n\n await navigator.clipboard.writeText(url.href);\n\n setShowLinkCopiedText(true);\n setTimeout(() => setShowLinkCopiedText(false), 3000);\n };\n\n const dialogTitleInfo = (\n <>\n <DialogTitle className='mb-2 text-[20px] font-semibold'>\n {title}\n </DialogTitle>\n {subtitle && <p className='text-[14px]'>{subtitle}</p>}\n </>\n );\n\n if (!isMobile) {\n return (\n <Dialog open={open} onOpenChange={setOpen}>\n <DialogTrigger asChild>{trigger}</DialogTrigger>\n <DialogContent className='sm:w-[400px]'>\n <DialogHeader>\n <DialogTitle className='mb-2 text-center text-xl text-gray-800'>\n {title}\n </DialogTitle>\n <DialogDescription className='text-center text-gray-800'>\n {subtitle}\n </DialogDescription>\n </DialogHeader>\n <div className='mt-4 grid w-full max-w-sm items-center gap-1.5'>\n <Label htmlFor='smart-action-link' className='text-gray-800'>\n Link\n </Label>\n <Input\n id='smart-action-link'\n value={shareLink}\n readOnly\n className='text-gray-800'\n />\n </div>\n <div className='flex items-center gap-4'>\n <Button\n className='w-full'\n variant='outline'\n onClick={() => window.open(social.twitter, \"_blank\")}\n >\n <img src='/twitter_black.svg' className='theme-icon h-5 w-5' />\n </Button>\n <Button\n className='w-full'\n variant='outline'\n onClick={() => window.open(social.telegram, \"_blank\")}\n >\n <img src='/telegram_black.svg' className='theme-icon h-5 w-5' />\n </Button>\n <Button\n className='w-full'\n variant='outline'\n onClick={() => window.open(social.facebook, \"_blank\")}\n >\n <img src='/facebook_black.svg' className='theme-icon h-5 w-5' />\n </Button>\n </div>\n <div>\n <Button className='w-full' onClick={handleCopyLink}>\n {showLinkCopiedText ? \"Copied\" : \"Copy Link\"}\n </Button>\n </div>\n </DialogContent>\n </Dialog>\n );\n }\n\n return (\n <Drawer open={open} onOpenChange={setOpen}>\n <DialogTrigger className='border-0 focus:ring-0' asChild>\n {trigger}\n </DialogTrigger>\n <DrawerContent className='flex gap-4 px-2'>\n <div className='text-center text-gray-800'>{dialogTitleInfo}</div>\n <div className='mt-4 grid w-full items-center gap-1.5'>\n <Label htmlFor='smart-action-link' className='text-gray-800'>\n Link\n </Label>\n <Input\n id='smart-action-link'\n value={shareLink}\n readOnly\n className='text-gray-800'\n />\n </div>\n <div className='flex items-center gap-4'>\n <Button\n className='w-full'\n variant='outline'\n onClick={() => window.open(social.twitter, \"_blank\")}\n >\n <img src='/twitter_black.svg' className='theme-icon h-5 w-5' />\n </Button>\n <Button\n className='w-full'\n variant='outline'\n onClick={() => window.open(social.telegram, \"_blank\")}\n >\n <img src='/telegram_black.svg' className='theme-icon h-5 w-5' />\n </Button>\n <Button\n className='w-full'\n variant='outline'\n onClick={() => window.open(social.facebook, \"_blank\")}\n >\n <img src='/facebook_black.svg' className='theme-icon h-5 w-5' />\n </Button>\n </div>\n <DrawerFooter className='gap-4 border-t border-shad-gray-20 p-4'>\n <div>\n <Button className='w-full' onClick={handleCopyLink}>\n {showLinkCopiedText ? \"Copied\" : \"Copy Link\"}\n </Button>\n </div>\n </DrawerFooter>\n </DrawerContent>\n </Drawer>\n );\n};\n\nexport default ShareModal;\n","import { useEffect, useState } from \"react\";\n\ntype WindowSize = {\n width?: number;\n height?: number;\n};\n\nexport const useWindowSize = () => {\n const [windowSize, setWindowSize] = useState<WindowSize>({\n width: undefined,\n height: undefined,\n });\n useEffect(() => {\n function handleResize() {\n setWindowSize({\n width: window.innerWidth,\n height: window.innerHeight,\n });\n }\n\n window.addEventListener(\"resize\", handleResize);\n\n handleResize();\n\n return () => window.removeEventListener(\"resize\", handleResize);\n }, []);\n return windowSize;\n};\n","import * as React from \"react\";\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\";\nimport { X } from \"lucide-react\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst Dialog = DialogPrimitive.Root;\n\nconst DialogTrigger = DialogPrimitive.Trigger;\n\nconst DialogPortal = DialogPrimitive.Portal;\n\nconst DialogClose = DialogPrimitive.Close;\n\nconst DialogOverlay = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Overlay\n ref={ref}\n className={cn(\n \"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className\n )}\n {...props}\n />\n));\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName;\n\nconst DialogContent = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Content\n ref={ref}\n className={cn(\n \"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg\",\n className\n )}\n {...props}\n >\n {children}\n <DialogPrimitive.Close className='absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground'>\n <X className='h-4 w-4' />\n <span className='sr-only'>Close</span>\n </DialogPrimitive.Close>\n </DialogPrimitive.Content>\n </DialogPortal>\n));\nDialogContent.displayName = DialogPrimitive.Content.displayName;\n\nconst DialogHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col space-y-1.5 text-center sm:text-left\",\n className\n )}\n {...props}\n />\n);\nDialogHeader.displayName = \"DialogHeader\";\n\nconst DialogFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className\n )}\n {...props}\n />\n);\nDialogFooter.displayName = \"DialogFooter\";\n\nconst DialogTitle = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n className={cn(\n \"text-lg font-semibold leading-none tracking-tight\",\n className\n )}\n {...props}\n />\n));\nDialogTitle.displayName = DialogPrimitive.Title.displayName;\n\nconst DialogDescription = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n));\nDialogDescription.displayName = DialogPrimitive.Description.displayName;\n\nexport {\n Dialog,\n DialogPortal,\n DialogOverlay,\n DialogClose,\n DialogTrigger,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription,\n};\n","import * as React from \"react\";\nimport { Drawer as DrawerPrimitive } from \"vaul\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst Drawer = ({\n shouldScaleBackground = true,\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Root>) => (\n <DrawerPrimitive.Root\n shouldScaleBackground={shouldScaleBackground}\n {...props}\n />\n);\nDrawer.displayName = \"Drawer\";\n\nconst DrawerTrigger = DrawerPrimitive.Trigger;\n\nconst DrawerPortal = DrawerPrimitive.Portal;\n\nconst DrawerClose = DrawerPrimitive.Close;\n\nconst DrawerOverlay = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Overlay\n ref={ref}\n className={cn(\"fixed inset-0 z-50 bg-black/80\", className)}\n {...props}\n />\n));\nDrawerOverlay.displayName = DrawerPrimitive.Overlay.displayName;\n\nconst DrawerContent = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <DrawerPortal>\n <DrawerOverlay />\n <DrawerPrimitive.Content\n ref={ref}\n className={cn(\n \"fixed inset-x-0 bottom-0 z-50 mt-24 flex h-auto flex-col rounded-t-[10px] border bg-background\",\n className\n )}\n {...props}\n >\n <div className='mx-auto mt-4 h-2 w-[100px] rounded-full bg-muted' />\n {children}\n </DrawerPrimitive.Content>\n </DrawerPortal>\n));\nDrawerContent.displayName = \"DrawerContent\";\n\nconst DrawerHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\"grid gap-1.5 p-4 text-center sm:text-left\", className)}\n {...props}\n />\n);\nDrawerHeader.displayName = \"DrawerHeader\";\n\nconst DrawerFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\"mt-auto flex flex-col gap-2 p-4\", className)}\n {...props}\n />\n);\nDrawerFooter.displayName = \"DrawerFooter\";\n\nconst DrawerTitle = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Title\n ref={ref}\n className={cn(\n \"text-lg font-semibold leading-none tracking-tight\",\n className\n )}\n {...props}\n />\n));\nDrawerTitle.displayName = DrawerPrimitive.Title.displayName;\n\nconst DrawerDescription = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n));\nDrawerDescription.displayName = DrawerPrimitive.Description.displayName;\n\nexport {\n Drawer,\n DrawerPortal,\n DrawerOverlay,\n DrawerTrigger,\n DrawerClose,\n DrawerContent,\n DrawerHeader,\n DrawerFooter,\n DrawerTitle,\n DrawerDescription,\n};\n","import * as React from \"react\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst Input = React.forwardRef<HTMLInputElement, React.ComponentProps<\"input\">>(\n ({ className, type, ...props }, ref) => {\n return (\n <input\n type={type}\n className={cn(\n \"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm\",\n className\n )}\n ref={ref}\n {...props}\n />\n );\n }\n);\nInput.displayName = \"Input\";\n\nexport { Input };\n","import * as React from \"react\";\nimport * as LabelPrimitive from \"@radix-ui/react-label\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst labelVariants = cva(\n \"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\"\n);\n\nconst Label = React.forwardRef<\n React.ElementRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> &\n VariantProps<typeof labelVariants>\n>(({ className, ...props }, ref) => (\n <LabelPrimitive.Root\n ref={ref}\n className={cn(labelVariants(), className)}\n {...props}\n />\n));\nLabel.displayName = LabelPrimitive.Root.displayName;\n\nexport { Label };\n","import { EthTransactionParams, Network, SignRequestData } from \"near-safe\";\nimport { useEffect, useState } from \"react\";\nimport { formatEther } from \"viem\";\nimport { useTransaction } from \"../../../hooks/useTransaction\";\nimport { useWindowSize } from \"../../../hooks/useWindowSize\";\nimport { shortenString } from \"../../../lib/utils\";\nimport { useAccount } from \"../../AccountContext\";\nimport {\n Accordion,\n AccordionContent,\n AccordionItem,\n AccordionTrigger,\n} from \"../../ui/accordion\";\nimport { Button } from \"../../ui/button\";\nimport { Card, CardFooter, CardHeader } from \"../../ui/card\";\nimport { CopyStandard } from \"./../CopyStandard\";\nimport LoadingMessage from \"./../LoadingMessage\";\nimport { TransactionDetail } from \"./TransactionDetail\";\nimport { TransactionResult } from \"./TransactionResult\";\n\nexport const EvmTxCard = ({ evmData }: { evmData?: SignRequestData }) => {\n const { width } = useWindowSize();\n const isMobile = !!width && width < 640;\n const [errorMsg, setErrorMsg] = useState(\"\");\n const [isLoading, setIsLoading] = useState(false);\n const [txHash, setTxHash] = useState<string | undefined>();\n const { evmAddress, evmWallet } = useAccount();\n\n if (!evmData)\n return (\n <p className='my-6 overflow-auto text-center'>\n Unable to create evm transaction.\n </p>\n );\n\n if (\n !Array.isArray(evmData.params) ||\n !evmData.params.every(isValidEvmParams)\n ) {\n return (\n <p className='my-6 overflow-auto text-center'>\n Invalid EVM transaction parameters.\n </p>\n );\n }\n\n useEffect(() => {\n if (evmWallet?.hash) {\n setIsLoading(false);\n setTxHash(evmWallet.hash);\n }\n }, [evmWallet?.hash]);\n\n const network = Network.fromChainId(evmData.chainId);\n const { handleTxn } = useTransaction({ evmWallet: evmWallet });\n\n const handleSmartAction = async () => {\n setIsLoading(true);\n try {\n await handleTxn({ evmData });\n } catch (error: any) {\n setErrorMsg(error.message);\n }\n };\n\n return (\n <>\n <div className='mb-8 flex justify-center'>\n <Card className='w-full'>\n <CardHeader className='border-b border-slate-200 p-4 text-center md:p-6'>\n <p className='text-xl font-semibold'>EVM Transaction</p>\n </CardHeader>\n <div>\n {evmData ? (\n <div className='p-6'>\n <div className='flex flex-col gap-6 text-sm'>\n <TransactionDetail\n label='Chain ID'\n value={shortenString(\n evmData.chainId.toString(),\n isMobile ? 13 : 21\n )}\n />\n <TransactionDetail label='Network' value={network.name} />\n <Accordion\n type='single'\n collapsible\n defaultValue='transaction-0'\n >\n {evmData.params.map((transaction, index) => (\n <AccordionItem\n key={transaction.to}\n value={`transaction-${index}`}\n className='border-0'\n >\n <AccordionTrigger className='pt-0 hover:no-underline'>\n <div className='flex items-center justify-between text-sm'>\n <p className='text-text-secondary'>\n Transaction {index + 1}\n </p>\n </div>\n </AccordionTrigger>\n <AccordionContent className='flex flex-col gap-6 border-0'>\n {transaction.to && (\n <TransactionDetail\n label='To'\n className='-mr-2.5'\n value={\n <CopyStandard\n text={transaction.to}\n textSize='sm'\n textColor='gray-800'\n charSize={isMobile ? 7 : 12}\n />\n }\n />\n )}\n <TransactionDetail\n label='Value'\n value={\n transaction.value\n ? formatEther(BigInt(transaction.value))\n : \"0\"\n }\n />\n <TransactionDetail\n label='Data'\n value={\n <CopyStandard\n text={transaction.data || \"0x\"}\n textSize='sm'\n charSize={isMobile ? 10 : 15}\n />\n }\n />\n </AccordionContent>\n </AccordionItem>\n ))}\n </Accordion>\n </div>\n </div>\n ) : null}\n </div>\n\n {errorMsg && !isLoading ? (\n <div className='flex flex-col items-center gap-4 px-6 pb-6 text-center text-sm'>\n <p className='text-red-300'>\n An error occurred trying to execute your transaction: {errorMsg}\n .\n </p>\n <Button\n className='w-1/2'\n variant='outline'\n onClick={() => {\n setErrorMsg(\"\");\n }}\n >\n Dismiss\n </Button>\n </div>\n ) : null}\n\n {isLoading ? <LoadingMessage /> : null}\n {txHash ? (\n <TransactionResult\n result={{ evm: { txHash, chainId: evmData.chainId } }}\n accountId={evmAddress}\n />\n ) : null}\n {!isLoading && !errorMsg && !txHash ? (\n <CardFooter className='flex items-center gap-6'>\n <>\n <Button variant='outline' className='w-1/2'>\n Decline\n </Button>\n\n <Button\n className='w-1/2'\n onClick={handleSmartAction}\n disabled={isLoading}\n >\n {isLoading ? \"Confirming...\" : \"Approve\"}\n </Button>\n </>\n </CardFooter>\n ) : null}\n </Card>\n </div>\n </>\n );\n};\n\nconst isValidEvmParams = (data: unknown): data is EthTransactionParams => {\n return (\n typeof data === \"object\" &&\n data !== null &&\n \"to\" in data &&\n typeof data.to === \"string\" &&\n data.to.startsWith(\"0x\")\n );\n};\n","import {\n FinalExecutionOutcome,\n Transaction,\n Wallet,\n} from \"@near-wallet-selector/core\";\nimport { Account } from \"near-api-js\";\nimport {\n EthTransactionParams,\n SignRequestData\n} from \"near-safe\";\nimport { EVMWalletAdapter } from \"../types\";\n\nexport interface SuccessInfo {\n near: {\n receipts: FinalExecutionOutcome[];\n transactions: Transaction[];\n encodedTxn?: string;\n };\n}\n\ninterface UseTransactionProps {\n account?: Account;\n wallet?: Wallet;\n evmWallet?: EVMWalletAdapter;\n}\n\ninterface HandleTxnOptions {\n transactions?: Transaction[];\n evmData?: SignRequestData;\n}\n\nexport const useTransaction = ({\n account,\n wallet,\n evmWallet,\n}: UseTransactionProps) => {\n const handleTxn = async ({\n transactions,\n evmData,\n }: HandleTxnOptions): Promise<SuccessInfo> => {\n const hasNoWalletOrAccount = !wallet && !account && !evmWallet?.address;\n if (hasNoWalletOrAccount) {\n throw new Error(\"No wallet or account provided\");\n }\n\n let nearResult;\n if (transactions) {\n nearResult = account\n ? await executeWithAccount(transactions, account)\n : await executeWithWallet(transactions, wallet);\n }\n\n if (evmData && evmWallet) {\n await executeWithEvmWallet(evmData, evmWallet);\n }\n\n return {\n near: {\n receipts: Array.isArray(nearResult) ? nearResult : [],\n transactions: transactions || [],\n },\n };\n };\n\n return {\n handleTxn,\n };\n};\n\nexport const executeWithAccount = async (\n transactions: Transaction[],\n account: Account\n): Promise<FinalExecutionOutcome[]> => {\n const results = await Promise.all(\n transactions.map(async (txn) => {\n if (txn.actions.every((action) => action.type === \"FunctionCall\")) {\n try {\n return await account.functionCall({\n contractId: txn.receiverId,\n methodName: txn.actions[0].params.methodName,\n args: txn.actions[0].params.args,\n attachedDeposit: BigInt(txn.actions[0].params.deposit),\n gas: BigInt(txn.actions[0].params.gas),\n });\n } catch (error) {\n console.error(\n `Transaction failed for contract ${txn.receiverId}, method ${txn.actions[0].params.methodName}:`,\n error\n );\n return null;\n }\n }\n return null;\n })\n );\n return results.filter(\n (result): result is FinalExecutionOutcome => result !== null\n );\n};\n\nexport const executeWithWallet = async (\n transactions: Transaction[],\n wallet: Wallet | undefined\n): Promise<void | FinalExecutionOutcome[]> => {\n if (!wallet) {\n throw new Error(\"Can't have undefined account and wallet\");\n }\n return wallet.signAndSendTransactions({\n transactions: transactions,\n });\n};\n\nexport const executeWithEvmWallet = async (\n evmData: SignRequestData,\n evmWallet: EVMWalletAdapter\n): Promise<void> => {\n if (!Array.isArray(evmData.params)) {\n throw new Error(\"Invalid transaction parameters\");\n }\n\n if (\n !evmData.params.every(\n (tx): tx is EthTransactionParams => typeof tx === \"object\" && \"to\" in tx\n )\n ) {\n throw new Error(\"Invalid transaction parameters\");\n }\n\n const txPromises = evmData.params.map((tx) => {\n const rawTxParams = {\n to: tx.to,\n value: tx.value ? BigInt(tx.value) : BigInt(0),\n data: tx.data || \"0x\",\n from: tx.from,\n gas: tx.gas ? BigInt(tx.gas) : undefined,\n };\n\n return evmWallet.sendTransaction(rawTxParams);\n });\n\n await Promise.all(txPromises);\n};\n","import { CopyIcon } from \"lucide-react\";\nimport React, { useState } from \"react\";\nimport { useWindowSize } from \"../../hooks/useWindowSize\";\nimport { formatName, shortenString } from \"../../lib/utils\";\n\nexport const CopyStandard = ({\n text,\n textColor,\n textSize,\n charSize,\n isUrl,\n}: {\n text: string;\n textColor?: string;\n textSize?: string;\n charSize?: number;\n isUrl?: boolean;\n}) => {\n const [showLinkCopiedText, setShowLinkCopiedText] = useState(false);\n\n const { width } = useWindowSize();\n const isMobile = !!width && width < 1024;\n\n const handleCopyLink = async () => {\n await navigator.clipboard.writeText(text);\n\n setShowLinkCopiedText(true);\n setTimeout(() => setShowLinkCopiedText(false), 3000);\n };\n\n return (\n <div id='copy' className='cursor-pointer p-2.5' onClick={handleCopyLink}>\n <span\n className={`relative flex items-center justify-center gap-2 ${\n textColor ? `text-${textColor}` : \"text-shad-blue-100\"\n } ${textSize ? `text-${textSize}` : \"text-base\"}`}\n >\n {showLinkCopiedText\n ? \"Copied\"\n : isUrl\n ? formatName(text, isMobile ? charSize ?? 18 : charSize ?? 35)\n : shortenString(\n text,\n isMobile ? charSize ?? 18 : charSize ?? 35\n )}{\" \"}\n <CopyIcon size={16} className='text-shad-blue-100' />\n </span>\n </div>\n );\n};\n","import { BitteSpinner } from \"./BitteSpinner\";\n\nconst LoadingMessage = () => (\n <div className='flex flex-col items-center justify-center'>\n <div className='flex w-full items-center justify-center text-gray-600'>\n <BitteSpinner width={100} height={100} />\n </div>\n </div>\n);\n\nexport default LoadingMessage;\n","\nexport const TransactionDetail = ({\n label,\n value,\n className,\n}: {\n label: string;\n value: string | JSX.Element;\n className?: string;\n}) => (\n <div className={`flex items-center justify-between text-sm ${className}`}>\n <div className='text-text-secondary'>{label}</div>\n <div className='break-all text-gray-800'>{value}</div>\n </div>\n);\n","import { MoveUpRight } from \"lucide-react\";\nimport { Network } from \"near-safe\";\nimport { getNearblocksURL, shortenString } from \"../../../lib/utils\";\n\nexport const TransactionResult = ({\n result: { evm, near },\n accountId,\n}: any) => {\n const scanUrl = evm?.txHash\n ? `${Network.fromChainId(evm.chainId).scanUrl}/tx/${evm.txHash}`\n : null;\n\n return (\n <div className='mt-4'>\n <p className='text-center text-[14px] font-semibold'>\n Transaction success\n </p>\n <div className='flex flex-col gap-4 p-6 text-[14px]'>\n {evm?.txHash && scanUrl && (\n <div className='flex items-center justify-between px-6 text-[14px]'>\n <div className='text-text-secondary'>EVM Transaction</div>\n <a\n className='flex gap-1 text-gray-800 items-center'\n href={scanUrl}\n target='_blank'\n rel='noopener noreferrer'\n >\n {shortenString(evm.txHash, 10)}\n <MoveUpRight width={12} height={12} />\n </a>\n </div>\n )}\n {near?.receipts &&\n near.receipts.map((receipt: any) => (\n <div\n key={receipt.transaction.hash}\n className='flex items-center justify-between px-6 text-[14px]'\n >\n <div className='text-text-secondary'>Near Transaction</div>\n <a\n className='flex gap-1 items-center text-gray-800'\n href={getNearblocksURL(accountId, receipt.transaction.hash)}\n target='_blank'\n rel='noopener noreferrer'\n >\n {shortenString(receipt.transaction.hash, 10)}\n <MoveUpRight width={12} height={12} />\n </a>\n </div>\n ))}\n </div>\n </div>\n );\n};\n","import { Transaction } from \"@near-wallet-selector/core\";\nimport BN from \"bn.js\";\nimport { SafeEncodedSignRequest } from \"near-safe\";\nimport { useState } from \"react\";\nimport { useAccountBalance } from \"../../../hooks/useAccountBalance\";\nimport { SuccessInfo, useTransaction } from \"../../../hooks/useTransaction\";\nimport { useTxnFees } from \"../../../hooks/useTxnFees\";\nimport { useTxnPrice } from \"../../../hooks/useTxnPrice\";\nimport { useWindowSize } from \"../../../hooks/useWindowSize\";\nimport { safeJsonParse, shortenString } from \"../../../lib/utils\";\nimport { BitteToolWarning } from \"../../../types\";\nimport { useAccount } from \"../../AccountContext\";\nimport { Button } from \"../../ui/button\";\nimport { Card, CardFooter, CardHeader } from \"../../ui/card\";\nimport LoadingMessage from \"../LoadingMessage\";\nimport { TransactionResult } from \"./TransactionResult\";\nimport TxnBadge from \"./TxnBadge\";\nimport { TxnListWrapper } from \"./TxnListWrapper\";\n\nexport const ReviewTransaction = ({\n transactions,\n warnings,\n walletLoading,\n chatId,\n}: {\n transactions: Transaction[];\n warnings?: BitteToolWarning[] | null;\n creator?: string;\n evmData?: SafeEncodedSignRequest;\n agentId: string;\n walletLoading?: boolean;\n chatId: string | undefined;\n}) => {\n const [showTxnDetail, setShowTxnDetail] = useState(false);\n const [errorMsg, setErrorMsg] = useState(\"\");\n const [result, setResult] = useState<any>();\n const [isLoading, setIsLoading] = useState(false);\n const { wallet, account, accountId } = useAccount();\n const { handleTxn } = useTransaction({\n account,\n wallet,\n });\n\n const { balance } = useAccountBalance(account);\n\n const { costs, gasPrice } = useTxnPrice(new BN(balance || 0), transactions);\n const { totalDeposit } = useTxnFees(transactions, costs, gasPrice);\n\n const loading = walletLoading || isLoading;\n\n const { width } = useWindowSize();\n const isMobile = !!width && width < 640;\n\n if (!transactions || transactions.length === 0) {\n return (\n <p className='my-6 overflow-auto text-center text-text-secondary'>\n Unable to create transaction.\n </p>\n );\n }\n\n const firstAction = transactions[0]?.actions[0];\n const isTransfer = firstAction?.type === \"Transfer\";\n const isFunctionCall = firstAction?.type === \"FunctionCall\";\n const isMint = isFunctionCall && firstAction.params.methodName === \"mint\";\n const transactionType = isTransfer\n ? \"Send\"\n : transactions.length > 1\n ? \"multi\"\n : firstAction?.type === \"FunctionCall\"\n ? firstAction.params.methodName\n : \"unknown\";\n\n const to = shortenString(transactions[0]?.receiverId, isMobile ? 13 : 15);\n\n const txArgs = isFunctionCall\n ? safeJsonParse(firstAction.params?.args, {})\n : null;\n\n let txImage = null;\n if (txArgs && typeof txArgs === \"object\" && \"metadata\" in txArgs) {\n const metadata = safeJsonParse<{ media?: string }>(txArgs.metadata, {});\n if (\n metadata &&\n typeof metadata === \"object\" &&\n \"media\" in metadata &&\n typeof metadata.media === \"string\"\n ) {\n txImage = metadata.media;\n }\n }\n\n const handleSmartAction = async () => {\n // TO DO: add saving to local storage chat id here\n setIsLoading(true);\n setErrorMsg(\"\");\n\n if (chatId) {\n sessionStorage.setItem(\"chatId\", chatId);\n }\n try {\n const successInfo = (await handleTxn({\n transactions: transactions,\n })) as SuccessInfo;\n\n if (successInfo?.near?.receipts?.length > 0) {\n setResult(successInfo);\n }\n } catch (error: any) {\n setErrorMsg(error.message);\n } finally {\n setIsLoading(false);\n }\n };\n\n return (\n <Card>\n <CardHeader className='border-b border-slate-200 text-center'>\n <p className='text-[20px] font-semibold'>Review Transaction</p>\n </CardHeader>\n\n <div>\n {isMint && txImage ? (\n <div className='border-b border-slate-200'>\n <div className='p-6'>\n <div className='flex items-center justify-between text-[14px]'>\n <div className='text-text-secondary'>Asset</div>\n <img\n src={`${\n txImage.includes(\"https://\")\n ? txImage\n : `https://arweave.net/${txImage}`\n }`}\n width={64}\n height={64}\n className='rounded-md'\n />\n </div>\n </div>\n </div>\n ) : null}\n <div className='p-6'>\n <div className='flex items-center justify-between text-[14px]'>\n <div className='text-text-secondary'>Tx Type</div>\n\n <TxnBadge transactionType={transactionType} />\n </div>\n </div>\n <div className='flex flex-col gap-6 p-6'>\n <div className='flex items-center justify-between text-[14px]'>\n <div className='text-text-secondary'>Amount</div>\n <div className='font-semibold text-gray-800'>\n {totalDeposit} NEAR\n </div>\n </div>\n <div className='flex items-center justify-between text-[14px]'>\n <div className='text-text-secondary'>From</div>\n <div className='text-gray-800'>{accountId}</div>\n </div>\n <div className='flex items-center justify-between text-[14px]'>\n <div className='text-text-secondary'>To</div>\n <div className='text-gray-800'>{to}</div>\n </div>\n </div>\n\n {warnings && warnings.length > 0 && (\n <div className='px-6 pb-8'>\n <div className='border-t p-4 border-slate-200' />\n {warnings.map((warning, index) => (\n <div\n key={index}\n className='flex items-center justify-between text-sm'\n >\n <div className='text-red-500'>Warning</div>\n <div className='text-gray-800'>{warning.message}</div>\n </div>\n ))}\n </div>\n )}\n\n <TxnListWrapper\n transaction={transactions}\n accountId={accountId || \"\"}\n costs={costs || []}\n gasPrice={gasPrice || \"0\"}\n showDetails={showTxnDetail}\n modifiedUrl={`https://wallet.bitte.ai`}\n setShowTxnDetail={setShowTxnDetail}\n showTxnDetail={showTxnDetail}\n />\n </div>\n\n {errorMsg && !loading ? (\n <div className='flex flex-col items-center gap-4 px-6 pb-6 text-center text-sm'>\n <p className='text-red-300'>\n An error occurred trying to execute your transaction: {errorMsg}.\n </p>\n <Button\n className='w-1/2'\n variant='outline'\n onClick={() => {\n setErrorMsg(\"\");\n }}\n >\n Dismiss\n </Button>\n </div>\n ) : null}\n\n {loading ? <LoadingMessage /> : null}\n {result && !loading ? (\n <TransactionResult result={result} accountId={accountId} />\n ) : null}\n {!loading && !result && !errorMsg && accountId ? (\n <CardFooter className='flex items-center gap-6'>\n <>\n <Button variant='outline' className='w-1/2'>\n Decline\n </Button>\n\n <Button className='w-1/2' onClick={handleSmartAction}>\n Approve\n </Button>\n </>\n </CardFooter>\n ) : null}\n </Card>\n );\n};\n","import { Account } from \"near-api-js\";\nimport { useEffect, useState } from \"react\";\n\nexport function useAccountBalance(account?: Account) {\n const [balance, setBalance] = useState<number | null>(null);\n\n useEffect(() => {\n const fetchBalance = async () => {\n if (!account) return;\n try {\n const accountBalance = await account.getAccountBalance();\n setBalance(Number(accountBalance.available));\n } catch (error) {\n console.error(\"Error fetching balance:\", error);\n }\n };\n\n if (account) {\n fetchBalance();\n }\n }, [account]);\n\n return { balance };\n}\n","import { Transaction } from \"@near-wallet-selector/core\";\nimport BN from \"bn.js\";\nimport { formatNearAmount } from \"near-api-js/lib/utils/format\";\nimport { formatUnits } from \"viem\";\nimport { removeTrailingZeros } from \"../lib/utils\";\nimport { Cost } from \"../types\";\n\nexport const useTxnFees = (\n transactions: Transaction[],\n costs: Cost[],\n gasPrice: string\n) => {\n const feeLimitTgasBN =\n transactions?.reduce(\n (acc, txn) =>\n costs && costs.length > 0 ? costs[transactions.indexOf(txn)]?.gas : acc,\n new BN(0)\n ) || new BN(0);\n\n const feeLimitTgas = formatUnits(BigInt(feeLimitTgasBN.toString()), 12);\n const feeLimitNear = formatNearAmount(\n feeLimitTgasBN.mul(new BN(gasPrice)).toString(),\n 6\n );\n\n const totalDeposit = transactions?.reduce(\n (acc, txn) =>\n acc +\n (costs && costs.length > 0\n ? parseFloat(\n removeTrailingZeros(\n formatNearAmount(\n costs[transactions.indexOf(txn)]?.deposit?.toString() || \"0\",\n 3\n )\n )\n )\n : 0),\n 0\n );\n\n return {\n totalGas: feeLimitNear,\n totalDeposit,\n feeLimitTgas,\n };\n};\n","import { getLatestGasPrice } from \"@mintbase-js/rpc/lib/methods/getLatestGasPrice\";\nimport {\n Action,\n FunctionCallAction,\n Transaction,\n} from \"@near-wallet-selector/core\";\nimport BN from \"bn.js/\";\nimport { formatNearAmount } from \"near-api-js/lib/utils/format\";\nimport { useEffect, useMemo, useRef, useState } from \"react\";\nimport { RPC_URL } from \"../lib/constants\";\nimport { Cost } from \"../types\";\nimport { ActionCosts } from \"../types/transaction\";\n\nexport const useTxnPrice = (balance: BN, transactions?: Transaction[]) => {\n const [hasBalance, setHasBalance] = useState(true);\n const [loaded, setLoaded] = useState(false);\n\n const [priceState, setPriceState] = useState<{\n gasPrice: string;\n costs: Cost[];\n price: string;\n }>({\n gasPrice: \"0\",\n costs: [],\n price: \"0\",\n });\n\n const gasPriceFetched = useRef(false);\n const costsCalculated = useRef(false);\n\n const updatePriceState = (updates: Partial<typeof priceState>) => {\n setPriceState((prevState) => ({ ...prevState, ...updates }));\n };\n\n const COSTS: Record<ActionCosts, BN> = {\n CreateAccount: new BN(420000000000),\n Transfer: new BN(450000000000),\n Stake: new BN(50000000000),\n AddFullAccessKey: new BN(420000000000),\n DeleteKey: new BN(410000000000),\n };\n\n useEffect(() => {\n const definePrice = async () => {\n try {\n const currentGasPrice = await getLatestGasPrice(RPC_URL);\n updatePriceState({ gasPrice: currentGasPrice.toString() });\n gasPriceFetched.current = true;\n } catch (error) {\n console.error(\"Failed to fetch gas price:\", error);\n updatePriceState({ gasPrice: '100000000' });\n }\n };\n if (priceState?.gasPrice === \"0\") {\n definePrice();\n }\n }, [priceState?.gasPrice]);\n\n useEffect(() => {\n const defineCosts = () => {\n if (!transactions || transactions.length === 0) return;\n const costs = transactions.map((txn) => {\n const actionCosts = txn.actions.map((action: Action) => {\n switch (action.type) {\n case \"FunctionCall\":\n return {\n deposit: new BN(action.params.deposit || \"0\"),\n gas: new BN(action.params.gas),\n };\n case \"Transfer\":\n return {\n deposit: new BN(action.params.deposit || \"0\"),\n gas: COSTS[action.type as ActionCosts],\n };\n default:\n return {\n deposit: new BN(\"0\"),\n gas: COSTS[action.type as ActionCosts],\n };\n }\n });\n return actionCosts.reduce((acc, x) => ({\n deposit: acc.deposit.add(x.deposit),\n gas: acc.gas.add(x.gas),\n }));\n });\n\n if (JSON.stringify(priceState.costs) !== JSON.stringify(costs)) {\n updatePriceState({ costs: costs });\n }\n\n const { deposit } = costs.reduce((acc, x) => ({\n deposit: acc.deposit.add(x.deposit),\n gas: acc.gas.add(x.gas),\n }));\n\n const hasBalance = deposit.lt(balance);\n\n updatePriceState({\n price: deposit.toString(),\n });\n\n if (hasBalance !== hasBalance) {\n setHasBalance(hasBalance);\n }\n\n if (!loaded) {\n setLoaded(true);\n }\n\n costsCalculated.current = true;\n };\n\n if (\n !costsCalculated.current &&\n Number(priceState?.gasPrice) !== 0 &&\n balance !== undefined\n ) {\n defineCosts();\n }\n }, [priceState?.gasPrice, balance, transactions]);\n\n const otherTokensAmount = useMemo(() => {\n if (!transactions?.length) return;\n return transactions\n .map((txn) => {\n const functionCallAction = txn.actions.find(\n (action) =>\n action.type === \"FunctionCall\" &&\n action.params.methodName !== \"storage_deposit\"\n );\n\n if (!functionCallAction) return null;\n const args = (functionCallAction as FunctionCallAction)?.params?.args;\n\n return (\n (\"amount\" in args &&\n typeof args?.amount === \"string\" &&\n args?.amount) ||\n null\n );\n })\n .find((amount) => amount !== null);\n }, [transactions]);\n\n const amount = useMemo(() => {\n const costsAmount =\n priceState.costs?.[0]?.deposit &&\n formatNearAmount(priceState.costs?.[0]?.deposit.toString(), 3);\n if (\n [\"0\", \"0.000\", null, undefined, \"\"].includes(costsAmount) ||\n isNaN(Number(costsAmount))\n ) {\n return formatNearAmount(otherTokensAmount || \"0\", 3);\n } else {\n return costsAmount;\n }\n }, [priceState.price, otherTokensAmount, priceState?.costs]);\n\n const memoizedReturn = useMemo(() => {\n return {\n amount,\n gasPrice: priceState?.gasPrice,\n hasBalance: !!loaded ? hasBalance : true,\n costs: priceState.costs,\n loaded,\n };\n }, [amount, priceState?.gasPrice, hasBalance, priceState?.costs, loaded]);\n\n return memoizedReturn;\n};\n","import { cva, type VariantProps } from \"class-variance-authority\";\nimport * as React from \"react\";\nimport { cn } from \"../../lib/utils\";\n\nconst badgeVariants = cva(\n \"inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2\",\n {\n variants: {\n variant: {\n default:\n \"border-transparent bg-primary text-primary-foreground hover:bg-primary/80\",\n secondary:\n \"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n destructive:\n \"border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80\",\n outline: \"text-foreground\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof badgeVariants> {}\n\nfunction Badge({ className, variant, ...props }: BadgeProps) {\n return (\n <div className={cn(badgeVariants({ variant }), className)} {...props} />\n );\n}\n\nexport { Badge, badgeVariants };\n","import React from \"react\";\nimport { Badge } from \"../../ui/badge\";\n\nconst TxnBadge = ({ transactionType }: { transactionType: string }) => {\n let styleClass = \"\";\n let displayName = \"\";\n\n switch (transactionType) {\n case \"nft_batch_mint\":\n case \"mint\":\n styleClass = \"bg-shad-white-10 text-shad-slate-20\";\n displayName = \"Mint\";\n break;\n case \"nft_transfer\":\n styleClass = \"bg-shad-bg-light-blue-10 text-shad-blue-100\";\n displayName = \"Transfer\";\n break;\n case \"nft_approve\":\n styleClass = \"bg-light-purple text-purple-100\";\n displayName = \"List\";\n break;\n case \"nft_batch_burn\":\n styleClass = \"bg-shad-error-5 text-shad-error\";\n displayName = \"Burn\";\n break;\n case \"buy\":\n styleClass = \"bg-shad-light-green text-shad-green-20\";\n displayName = \"Buy\";\n break;\n case \"ft_transfer\":\n case \"Send\":\n styleClass = \"bg-shad-light-green text-shad-green-20\";\n displayName = \"Send\";\n break;\n default: // Default styles\n styleClass = \"bg-shad-white-10 text-shad-slate-20\";\n displayName = transactionType; // Default to raw transaction type if not matched\n }\n\n return <Badge className={`px-2 ${styleClass}`}>{displayName}</Badge>;\n};\n\nexport default TxnBadge;\n","import { FunctionCallAction } from \"@near-wallet-selector/core\";\nimport { MoveUpRight } from \"lucide-react\";\nimport { getNearblocksURL, shortenString } from \"../../../lib/utils\";\nimport { TransactionDetailProps } from \"../../../types/transaction\";\nimport TxAccordion from \"./TxAccordion\";\n\nconst DetailMethods = ({\n action,\n method,\n}: {\n action: FunctionCallAction;\n method: string;\n}) => {\n return (\n <>\n <TxAccordion label='Function Call' methodName={method}>\n <div className='overflow-x-auto rounded bg-shad-white-10 p-2 text-sm'>\n <pre className='p-2 md:p-4'>\n <code>{JSON.stringify(action, null, 2)}</code>\n </pre>\n </div>\n </TxAccordion>\n </>\n );\n};\n\nexport const TxnDetailMultipleAction = ({\n data,\n accountId,\n actions,\n showDetails,\n}: {\n data: TransactionDetailProps;\n accountId: string;\n actions: FunctionCallAction[];\n showDetails: boolean;\n}): JSX.Element => {\n const { transaction } = data;\n\n const contractName = transaction.receiverId;\n\n return (\n <>\n {showDetails && (\n <div className='flex flex-col'>\n {transaction?.actions?.[0].type === \"FunctionCall\" && (\n <div className='relative flex w-full flex-col gap-4 rounded p-6'>\n <span className='text-sm font-semibold text-gray-800'>\n Contract Details\n </span>\n <div className='flex flex-col items-start justify-start gap-2 text-sm md:flex-row md:items-center md:justify-between md:gap-0 md:space-x-4'>\n <span className='text-text-secondary'>For Contract</span>\n <span className='cursor-pointer'>\n <a\n className='flex gap-1 items-center text-gray-800'\n href={getNearblocksURL(accountId, undefined, contractName)}\n target='_blank'\n >\n {shortenString(contractName, 14)}\n <MoveUpRight width={12} height={12} />\n </a>\n </span>\n </div>\n {actions.length > 1\n ? actions.map((action: FunctionCallAction, idx: number) => {\n return (\n <DetailMethods\n key={idx}\n action={action}\n method={action.params.methodName}\n />\n );\n })\n : null}\n </div>\n )}\n </div>\n )}\n </>\n );\n};\n","import { ChevronDown } from \"lucide-react\";\nimport { useState } from \"react\";\n\nconst TxAccordion = ({\n label,\n methodName,\n children,\n}: {\n label: string;\n methodName: string;\n children: React.ReactNode;\n}) => {\n const [isOpen, setIsOpen] = useState<boolean>(false);\n\n const toggleAccordion = () => {\n setIsOpen((prevIsOpen) => !prevIsOpen);\n };\n\n return (\n <>\n <div className='flex items-center justify-between'>\n <div className='text-[14px] text-text-secondary'>{label}</div>\n\n <div className='flex cursor-pointer gap-0.5' onClick={toggleAccordion}>\n <span className='flex items-center justify-center bg-shad-white-10 p-1 px-2 text-[14px] text-text-primary'>\n <code>{methodName}</code>\n </span>\n <div className='flex w-[30px] items-center justify-center rounded-r-sm bg-shad-white-10 text-text-primary'>\n <ChevronDown\n className={`${isOpen ? \"rotate-180\" : \"\"}`}\n width={16}\n />\n </div>\n </div>\n </div>\n\n {isOpen && <div className='mt-2 w-full'>{children}</div>}\n </>\n );\n};\n\nexport default TxAccordion;\n","import { FunctionCallAction, Transaction } from \"@near-wallet-selector/core\";\nimport { formatCosts } from \"../../../../lib/utils\";\nimport { TxnDetailWrapperProps } from \"../../../../types/transaction\";\nimport { TxnDetailMultipleAction } from \"../TxnDetailMultipleAction\";\n\nexport const MultipleTxnMultiActionDetails = ({\n accountId,\n transaction,\n modifiedUrl,\n showDetails,\n showTxnDetail,\n costs,\n gasPrice,\n}: TxnDetailWrapperProps): JSX.Element => {\n return (\n <>\n {transaction.map((txn: Transaction, txnIdx: number) => {\n const txnData = {\n // TODO: Ensure that the actions are always FunctionCallAction.\n transaction: txn,\n showDetails,\n modifiedUrl,\n gasPrice,\n ...formatCosts(costs, gasPrice),\n };\n\n return (\n <TxnDetailMultipleAction\n accountId={accountId}\n key={txnIdx}\n data={txnData}\n showDetails={showTxnDetail}\n actions={txnData.transaction.actions as FunctionCallAction[]}\n />\n );\n })}\n </>\n );\n};\n","import { MoveUpRight } from \"lucide-react\";\nimport { getNearblocksURL, shortenString } from \"../../../lib/utils\";\nimport { TransactionDetailProps } from \"../../../types/transaction\";\nimport TxAccordion from \"./TxAccordion\";\n\nexport const TxnDetail = ({\n data,\n showDetails,\n showTitle,\n methodName,\n accountId,\n}: {\n data: TransactionDetailProps;\n showDetails: boolean;\n showTitle: boolean;\n methodName?: string;\n accountId: string;\n}): JSX.Element => {\n const { transaction } = data;\n\n let method = methodName;\n if (!method && transaction?.actions?.[0]?.type == \"FunctionCall\") {\n method = transaction.actions[0].params.methodName;\n }\n\n const contractName = transaction.receiverId;\n\n return (\n <>\n {!!showDetails && (\n <div className='flex flex-col'>\n {transaction?.actions?.[0].type === \"FunctionCall\" && (\n <div className='relative flex w-full flex-col gap-4 rounded p-6'>\n {showTitle ? (\n <span className='text-sm font-semibold text-gray-800'>\n Contract Details\n </span>\n ) : null}\n <div className='flex flex-col items-start justify-start gap-2 text-sm md:flex-row md:items-center md:justify-between md:gap-0 md:space-x-4'>\n <span className='text-text-secondary'>For Contract</span>\n <span className='cursor-pointer'>\n <a\n className='flex gap-1 items-center text-gray-800'\n href={getNearblocksURL(accountId, undefined, contractName)}\n target='_blank'\n >\n {shortenString(contractName, 14)}\n <MoveUpRight width={12} height={12} />\n </a>\n </span>\n </div>\n {method && (\n <>\n <TxAccordion label='Function Call' methodName={method}>\n <div className='overflow-x-auto rounded bg-shad-white-10 p-2 text-sm text-text-primary'>\n <pre className='p-2 md:p-4'>\n <code>\n {JSON.stringify(\n transaction?.actions?.[0].params?.args,\n null,\n 2\n )}\n </code>\n </pre>\n </div>\n </TxAccordion>\n </>\n )}\n </div>\n )}\n </div>\n )}\n </>\n );\n};\n","import { Transaction } from \"@near-wallet-selector/core\";\nimport { formatCosts } from \"../../../../lib/utils\";\nimport { TxnDetailWrapperProps } from \"../../../../types/transaction\";\nimport { TxnDetail } from \"../TxnDetail\";\n\nexport const MultipleTxnSingleActionDetail = ({\n accountId,\n transaction,\n modifiedUrl,\n showDetails,\n showTxnDetail,\n gasPrice,\n costs,\n}: TxnDetailWrapperProps): JSX.Element => {\n return (\n <>\n {transaction.map((txn: Transaction, idx: number) => {\n const txnData = {\n transaction: txn,\n showDetails,\n modifiedUrl,\n gasPrice,\n ...formatCosts(costs, gasPrice),\n };\n\n return (\n <div className='mb-1' key={idx}>\n <TxnDetail\n accountId={accountId}\n showTitle={idx === 0}\n data={txnData}\n showDetails={showTxnDetail}\n />\n </div>\n );\n })}\n </>\n );\n};\n","import { TxnDetailWrapperProps } from \"../../../../types/transaction\";\nimport { MultipleTxnMultiActionDetails } from \"./MultipleTxnMultiAction\";\nimport { MultipleTxnSingleActionDetail } from \"./MultipleTxnSingleAction\";\n\nexport const MultipleTxnDetail = ({\n accountId,\n transaction,\n modifiedUrl,\n showDetails,\n showTxnDetail,\n costs,\n gasPrice,\n}: TxnDetailWrapperProps): JSX.Element => {\n const hasMultipleActions = transaction.every(\n (tx) => tx.actions && tx.actions.length > 1\n );\n\n return hasMultipleActions ? (\n <MultipleTxnMultiActionDetails\n accountId={accountId}\n costs={costs}\n gasPrice={gasPrice}\n transaction={transaction}\n modifiedUrl={modifiedUrl}\n showDetails={showDetails}\n showTxnDetail={showTxnDetail}\n />\n ) : (\n <MultipleTxnSingleActionDetail\n accountId={accountId}\n costs={costs}\n gasPrice={gasPrice}\n transaction={transaction}\n modifiedUrl={modifiedUrl}\n showDetails={showDetails}\n showTxnDetail={showTxnDetail}\n />\n );\n};\n","import { ChevronsDownUp, ChevronsUpDown } from \"lucide-react\";\n\nexport const ShowDetailsBtn = ({\n setShowDetails,\n showDetails,\n displayName,\n}: {\n setShowDetails: (showDetails: boolean) => void;\n showDetails: boolean;\n displayName: string;\n}): JSX.Element => {\n return (\n <div\n className='flex cursor-pointer items-center justify-center gap-2 bg-shad-white-30 py-4'\n onClick={() => setShowDetails(!showDetails)}\n >\n {showDetails ? (\n <ChevronsDownUp width={16} height={16} color='#64748B' />\n ) : (\n <ChevronsUpDown width={16} height={16} color='#64748B' />\n )}\n <span className='text-[12px] text-text-secondary'>{displayName}</span>\n </div>\n );\n};\n","import { FunctionCallAction } from \"@near-wallet-selector/core\";\nimport { formatCosts } from \"../../../../lib/utils\";\nimport { TxnDetailWrapperProps } from \"../../../../types/transaction\";\nimport { TxnDetailMultipleAction } from \"../TxnDetailMultipleAction\";\n\nexport const SingleTxnMultipleAction = ({\n transaction,\n accountId,\n modifiedUrl,\n showDetails,\n showTxnDetail,\n costs,\n gasPrice,\n}: TxnDetailWrapperProps): JSX.Element => {\n const txnData = {\n transaction: transaction[0],\n showDetails,\n modifiedUrl,\n gasPrice,\n ...formatCosts(costs, gasPrice),\n };\n\n return (\n <TxnDetailMultipleAction\n accountId={accountId}\n data={txnData}\n showDetails={showTxnDetail}\n actions={txnData.transaction.actions as FunctionCallAction[]}\n />\n );\n};\n","import { formatCosts } from \"../../../../lib/utils\";\nimport { TxnDetailWrapperProps } from \"../../../../types/transaction\";\nimport { TxnDetail } from \"../TxnDetail\";\nexport const SingleTxnSingleAction = ({\n accountId,\n transaction,\n modifiedUrl,\n showDetails,\n showTxnDetail,\n costs,\n gasPrice,\n}: TxnDetailWrapperProps): JSX.Element => {\n const txnData = {\n transaction: transaction[0],\n showDetails,\n modifiedUrl,\n gasPrice,\n ...formatCosts(costs, gasPrice),\n };\n\n return (\n <TxnDetail\n accountId={accountId}\n showTitle\n data={txnData}\n showDetails={showTxnDetail}\n />\n );\n};\n","import { TxnDetailWrapperProps } from \"../../../../types/transaction\";\nimport { SingleTxnMultipleAction } from \"./SingleTxnMultipleAction\";\nimport { SingleTxnSingleAction } from \"./SingleTxnSingleAction\";\n\nexport const SingleTxnDetail = ({\n accountId,\n costs,\n gasPrice,\n transaction,\n modifiedUrl,\n showDetails,\n showTxnDetail,\n}: TxnDetailWrapperProps): JSX.Element => {\n const hasMultipleActions = transaction?.[0]?.actions?.length > 1;\n\n return hasMultipleActions ? (\n <SingleTxnMultipleAction\n accountId={accountId}\n costs={costs}\n gasPrice={gasPrice}\n transaction={transaction}\n modifiedUrl={modifiedUrl}\n showDetails={showDetails}\n showTxnDetail={showTxnDetail}\n />\n ) : (\n <SingleTxnSingleAction\n accountId={accountId}\n costs={costs}\n gasPrice={gasPrice}\n transaction={transaction}\n modifiedUrl={modifiedUrl}\n showDetails={showDetails}\n showTxnDetail={showTxnDetail}\n />\n );\n};\n","import { Transaction } from \"@near-wallet-selector/core\";\nimport { useTxnFees } from \"../../../hooks/useTxnFees\";\nimport { Cost } from \"../../../types\";\nimport { TransactionOperation } from \"../../../types/transaction\";\n\nexport const TxnFees = ({\n transaction,\n operation,\n costs,\n gasPrice,\n}: {\n transaction: Transaction[];\n operation?: TransactionOperation;\n costs: Cost[];\n gasPrice: string;\n}): JSX.Element => {\n const { totalGas, totalDeposit, feeLimitTgas } = useTxnFees(\n transaction,\n costs,\n gasPrice\n );\n\n const showNoTxnFeeHighlight =\n operation?.operation === \"relay\" || operation?.operation === \"sponsor\";\n\n return (\n <div className='px-6'>\n <div className='relative mb-1 flex w-full flex-col gap-4 rounded border-b border-slate-200 py-6'>\n <span className='text-sm font-semibold text-gray-800'>\n Network Fees\n </span>\n <div className='flex flex-col items-start justify-start text-sm md:flex-row md:items-center md:justify-between md:gap-0 md:space-x-4'>\n <span className='text-text-secondary'>Estimated Fees</span>\n <div className='flex flex-col'>\n <span\n className={`text-gray-800 ${showNoTxnFeeHighlight ? \"line-through\" : \"\"}`}\n >\n {Number(totalGas).toFixed(5)} NEAR\n </span>\n {showNoTxnFeeHighlight ? (\n <span className='text-end text-shad-green-30'>0 NEAR</span>\n ) : null}\n </div>\n </div>\n <div className='flex flex-col items-start justify-start text-sm md:flex-row md:items-center md:justify-between md:gap-0 md:space-x-4'>\n <span className='text-text-secondary'>Fee Limit</span>\n <span className='text-gray-800'>\n {feeLimitTgas} {\"\"}\n Tgas\n </span>\n </div>\n <div className='flex flex-col items-start justify-start text-sm md:flex-row md:items-center md:justify-between md:gap-0 md:space-x-4'>\n <span className='text-text-secondary'>Deposit</span>\n <span className='text-gray-800'>\n {totalDeposit} {\"\"}\n NEAR\n </span>\n </div>\n </div>\n </div>\n );\n};\n","import { TransactionListProps } from \"../../../types\";\nimport { MultipleTxnDetail } from \"./multiple-transactions/MultipleTxnDetail\";\nimport { ShowDetailsBtn } from \"./ShowDetailsBtn\";\nimport { SingleTxnDetail } from \"./single-transaction/SingleTxnDetail\";\nimport { TxnFees } from \"./TxnFees\";\n\nexport const TxnListWrapper = ({\n accountId,\n costs,\n gasPrice,\n transaction,\n modifiedUrl,\n showDetails,\n showTxnDetail,\n setShowTxnDetail,\n operation,\n}: TransactionListProps): JSX.Element => {\n return (\n <div className='mx-auto flex w-full flex-col gap-1'>\n <div className='flex w-full flex-col justify-center rounded'>\n <ShowDetailsBtn\n setShowDetails={setShowTxnDetail}\n showDetails={showTxnDetail}\n displayName='Transaction Details'\n />\n\n {showTxnDetail ? (\n <TxnFees\n costs={costs || []}\n gasPrice={gasPrice || \"\"}\n transaction={transaction}\n operation={operation}\n />\n ) : null}\n\n {transaction?.length > 1 ? (\n <MultipleTxnDetail\n accountId={accountId}\n costs={costs || []}\n gasPrice={gasPrice || \"\"}\n transaction={transaction}\n modifiedUrl={modifiedUrl}\n showDetails={showDetails}\n showTxnDetail={showTxnDetail}\n />\n ) : (\n <SingleTxnDetail\n accountId={accountId}\n costs={costs || []}\n gasPrice={gasPrice || \"\"}\n transaction={transaction}\n modifiedUrl={modifiedUrl}\n showDetails={showDetails}\n showTxnDetail={showTxnDetail}\n />\n )}\n </div>\n </div>\n );\n};\n"],"mappings":"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A;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,kBACJ;AAAA,kBACA,GAAK;AAAA,oBACD;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,kBACJ;AAAA,kBACA,GAAK;AAAA,oBACD;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,oBACA;AAAA,sBACI;AAAA,sBACA;AAAA,oBACJ;AAAA,kBACJ;AA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A,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,wBACJ;AAAA,wBACA,GAAK;AAAA,0BACD;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,wBACJ;AAAA,wBACA,GAAK;AAAA,0BACD;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,wBACJ;AAAA,wBACA,GAAK;AAAA,sBACT;AAAA,oBACJ;AAAA,kBACJ;AAAA,kBACA;AAAA,oBACI,GAAK;AAAA,sBACD,GAAK;AAAA,sBACL,GAAK;AAAA,oBACT;AAAA,oBACA,GAAK;AAAA,sBACD,GAAK;AAAA,sBACL,GAAK;AAAA,oBACT;AAAA,oBACA,GAAK;AAAA,oBACL,GAAK;AAAA,sBACD;AAAA,wBACI,GAAK;AAAA,0BACD;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,wBACJ;AAAA,wBACA,GAAK;AAAA,0BACD;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,wBACJ;AAAA,wBACA,GAAK;AAAA,0BACD;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,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AAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,wBACJ;AAAA,wBACA,GAAK;AAAA,0BACD;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,wBACJ;AAAA,wBACA,GAAK;AAAA,0BACD;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,wBACJ;AAAA,wBACA,GAAK;AAAA,sBACT;AAAA,oBACJ;AAAA,kBACJ;AAAA,kBACA;AAAA,oBACI,GAAK;AAAA,oBACL,GAAK;AAAA,sBACD;AAAA,wBACI,GAAK;AAAA,0BACD;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,wBACJ;AAAA,wBACA,GAAK;AAAA,0BACD;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,wBACJ;AAAA,wBACA,GAAK;AAAA,0BACD;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;AAAA,4BACI;AAAA,4BACA;AAAA,0BACJ;AAAA,0BACA;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","names":["useEffect","useState","generateId","useEffect","useMemo","useRef","useState","AssistantsMode","Model","React","jsx","jsx","useEffect","useState","React","jsx","forwardRef","jsx","jsx","useState","useEffect","React","jsx","jsxs","React","jsx","useEffect","useState","jsx","jsx","React","jsx","React","jsx","jsx","jsxs","jsx","useEffect","useState","useState","useEffect","useState","React","jsx","jsxs","jsx","jsxs","React","jsx","jsxs","React","jsx","React","cva","jsx","cva","jsx","jsxs","useState","jsx","jsxs","Network","useEffect","useState","useState","jsx","jsxs","useState","jsx","jsx","jsxs","jsx","jsxs","Fragment","jsx","jsxs","useState","useEffect","Network","BN","useState","useEffect","useState","BN","formatNearAmount","BN","formatNearAmount","BN","formatNearAmount","useEffect","useMemo","useRef","useState","useState","useRef","BN","useEffect","hasBalance","useMemo","amount","formatNearAmount","cva","jsx","cva","jsx","MoveUpRight","ChevronDown","useState","Fragment","jsx","jsxs","Fragment","jsx","jsxs","MoveUpRight","Fragment","jsx","MoveUpRight","Fragment","jsx","jsxs","MoveUpRight","Fragment","jsx","jsx","jsx","jsxs","jsx","jsx","jsx","jsx","jsxs","jsx","jsxs","Fragment","jsx","jsxs","useState","BN","Fragment","jsx","jsxs","index","Fragment","jsx","jsxs","useRef","generateId","useState","useMemo","useEffect","messages","jsx","useState","useEffect","uiMessages"]}