auramaxx 0.0.11 → 0.0.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/app-build-manifest.json +240 -223
- package/.next/app-path-routes-manifest.json +8 -7
- package/.next/build-manifest.json +14 -14
- package/.next/prerender-manifest.json +53 -29
- package/.next/react-loadable-manifest.json +41 -41
- package/.next/routes-manifest.json +6 -0
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +12 -12
- package/.next/server/app/api/[...doc]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/api/agent-requests/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/apps/install/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/apps/manifests/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/apps/static/[...path]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/docs/plain/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/events/route.js +1 -19
- package/.next/server/app/api/events/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/import-from-openclaw/[channel]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/import-from-openclaw/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/import-from-openclaw/validate/[channel]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/page_client-reference-manifest.js +1 -1
- package/.next/server/app/api/restart/route.js +1 -1
- package/.next/server/app/api/restart/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/update/route.js +63 -1
- package/.next/server/app/api/update/route.js.nft.json +1 -1
- package/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/version/route.js +1 -1
- package/.next/server/app/api/version/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/workspace/[id]/apps/[wid]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/workspace/[id]/apps/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/workspace/[id]/export/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/workspace/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/workspace/config/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/workspace/import/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/workspace/route_client-reference-manifest.js +1 -1
- package/.next/server/app/app-legacy-do-not-use/page.js +1 -1
- package/.next/server/app/app-legacy-do-not-use/page.js.nft.json +1 -1
- package/.next/server/app/app-legacy-do-not-use/page_client-reference-manifest.js +1 -1
- package/.next/server/app/app-legacy-do-not-use.html +1 -1
- package/.next/server/app/app-legacy-do-not-use.rsc +14 -14
- package/.next/server/app/approve/[actionId]/page.js +1 -1
- package/.next/server/app/approve/[actionId]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/docs/[...doc]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/docs/page_client-reference-manifest.js +1 -1
- package/.next/server/app/health/page_client-reference-manifest.js +1 -1
- package/.next/server/app/health.html +1 -1
- package/.next/server/app/health.rsc +13 -13
- package/.next/server/app/hello/page_client-reference-manifest.js +1 -1
- package/.next/server/app/hello.html +1 -1
- package/.next/server/app/hello.rsc +14 -14
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +18 -21
- package/.next/server/app/page.js +3 -3
- package/.next/server/app/page.js.nft.json +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/privacy/page_client-reference-manifest.js +1 -1
- package/.next/server/app/privacy.html +1 -1
- package/.next/server/app/privacy.rsc +13 -13
- package/.next/server/app/share/[token]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/terms/page_client-reference-manifest.js +1 -1
- package/.next/server/app/terms.html +1 -1
- package/.next/server/app/terms.rsc +13 -13
- package/.next/server/app/yo/page.js +2 -0
- package/.next/server/app/yo/page.js.nft.json +1 -0
- package/.next/server/app/yo/page_client-reference-manifest.js +1 -0
- package/.next/server/app/yo.html +1 -0
- package/.next/server/app/yo.meta +7 -0
- package/.next/server/app/yo.rsc +23 -0
- package/.next/server/app-paths-manifest.json +8 -7
- package/.next/server/chunks/2145.js +1 -1
- package/.next/server/chunks/2460.js +1 -1
- package/.next/server/chunks/5246.js +1 -1
- package/.next/server/chunks/5678.js +1 -1
- package/.next/server/chunks/5784.js +1 -1
- package/.next/server/chunks/6086.js +2 -20
- package/.next/server/chunks/{5553.js → 6415.js} +2 -2
- package/.next/server/chunks/7935.js +2 -2
- package/.next/server/functions-config-manifest.json +1 -1
- package/.next/server/instrumentation.js +1 -1
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/server/webpack-runtime.js +1 -1
- package/.next/static/WshFGr6RxGYP6AbWuT9OG/_buildManifest.js +1 -0
- package/.next/static/chunks/1168.aaac1edbb597fe5a.js +1 -0
- package/.next/static/chunks/1255-7999eac54f80a49f.js +1 -0
- package/.next/static/chunks/142-fa9752f53a551f63.js +1 -0
- package/.next/static/chunks/2505.d54ccadc42f4e3d1.js +1 -0
- package/.next/static/chunks/2619-04bc32f026a0d946.js +1 -0
- package/.next/static/chunks/2927.7e00cc878d9a3f52.js +1 -0
- package/.next/static/chunks/3573-1b41d7b8a000d015.js +1 -0
- package/.next/static/chunks/3609.ded5a5306e18af9c.js +1 -0
- package/.next/static/chunks/3667-1db7bd03948e60df.js +1 -0
- package/.next/static/chunks/3826.a73d4a88d8c09030.js +1 -0
- package/.next/static/chunks/{3a91511d-648a2ba3dad7df0c.js → 3a91511d-ba215c0b5dc21ba9.js} +1 -1
- package/.next/static/chunks/4256.48407d9abad5ea33.js +1 -0
- package/.next/static/chunks/4685-7f53bbfc4a9845eb.js +1 -0
- package/.next/static/chunks/4901-ba6a32818662e70a.js +1 -0
- package/.next/static/chunks/4919-7e7cdd5efc9f2110.js +1 -0
- package/.next/static/chunks/4bd1b696-100b9d70ed4e49c1.js +1 -0
- package/.next/static/chunks/5336-233ec7ab3807267c.js +1 -0
- package/.next/static/chunks/5442-b5bb869e832e8967.js +1 -0
- package/.next/static/chunks/6233-97a810aa272af547.js +1 -0
- package/.next/static/chunks/626.a5109d16f9eca1f6.js +1 -0
- package/.next/static/chunks/6872-faea0f088ab2d450.js +1 -0
- package/.next/static/chunks/7338-3ce17a93614f1d77.js +59 -0
- package/.next/static/chunks/7394-4bdb1feefad1a74a.js +1 -0
- package/.next/static/chunks/7616-1129bcb3eee8d315.js +1 -0
- package/.next/static/chunks/786-26deffb41572cbb3.js +1 -0
- package/.next/static/chunks/8273-8e92d34180669ca9.js +1 -0
- package/.next/static/chunks/8357.5dee1e0c4e5bb091.js +1 -0
- package/.next/static/chunks/9062-2bc2d089f9c9c6ba.js +1 -0
- package/.next/static/chunks/9380.f198afbf0c6b5369.js +1 -0
- package/.next/static/chunks/app/_not-found/page-5a8c6a29f762fa58.js +1 -0
- package/.next/static/chunks/app/api/[...doc]/page-f0852f35f0fd1d44.js +1 -0
- package/.next/static/chunks/app/api/agent-requests/route-cf84f975aad4c719.js +1 -0
- package/.next/static/chunks/app/api/apps/install/route-cf84f975aad4c719.js +1 -0
- package/.next/static/chunks/app/api/apps/manifests/route-cf84f975aad4c719.js +1 -0
- package/.next/static/chunks/app/api/apps/static/[...path]/route-cf84f975aad4c719.js +1 -0
- package/.next/static/chunks/app/api/docs/plain/route-cf84f975aad4c719.js +1 -0
- package/.next/static/chunks/app/api/events/route-cf84f975aad4c719.js +1 -0
- package/.next/static/chunks/app/api/import-from-openclaw/[channel]/route-cf84f975aad4c719.js +1 -0
- package/.next/static/chunks/app/api/import-from-openclaw/route-cf84f975aad4c719.js +1 -0
- package/.next/static/chunks/app/api/import-from-openclaw/validate/[channel]/route-cf84f975aad4c719.js +1 -0
- package/.next/static/chunks/app/api/page-cc59bebcc0d2c01d.js +1 -0
- package/.next/static/chunks/app/api/restart/route-cf84f975aad4c719.js +1 -0
- package/.next/static/chunks/app/api/update/route-cf84f975aad4c719.js +1 -0
- package/.next/static/chunks/app/api/version/route-cf84f975aad4c719.js +1 -0
- package/.next/static/chunks/app/api/workspace/[id]/apps/[wid]/route-cf84f975aad4c719.js +1 -0
- package/.next/static/chunks/app/api/workspace/[id]/apps/route-cf84f975aad4c719.js +1 -0
- package/.next/static/chunks/app/api/workspace/[id]/export/route-cf84f975aad4c719.js +1 -0
- package/.next/static/chunks/app/api/workspace/[id]/route-cf84f975aad4c719.js +1 -0
- package/.next/static/chunks/app/api/workspace/config/route-cf84f975aad4c719.js +1 -0
- package/.next/static/chunks/app/api/workspace/import/route-cf84f975aad4c719.js +1 -0
- package/.next/static/chunks/app/api/workspace/route-cf84f975aad4c719.js +1 -0
- package/.next/static/chunks/app/app-legacy-do-not-use/page-e5dc864e92d90ca7.js +1 -0
- package/.next/static/chunks/app/approve/[actionId]/page-2acca1f490424f21.js +1 -0
- package/.next/static/chunks/app/docs/[...doc]/page-8e2a2d036caab242.js +1 -0
- package/.next/static/chunks/app/docs/page-acf872a03ff79893.js +1 -0
- package/.next/static/chunks/app/error-66f983b7769dabfa.js +1 -0
- package/.next/static/chunks/app/health/page-c9185854ed9c86d0.js +1 -0
- package/.next/static/chunks/app/hello/page-74c9f4deaa4b03dd.js +1 -0
- package/.next/static/chunks/app/layout-af8d9969c7aeb758.js +1 -0
- package/.next/static/chunks/app/page-16dfcd1c7cc88bcc.js +1 -0
- package/.next/static/chunks/app/privacy/page-8e2d17079355c2cc.js +1 -0
- package/.next/static/chunks/app/share/[token]/page-5dd9b0418eee411f.js +1 -0
- package/.next/static/chunks/app/terms/page-8e2d17079355c2cc.js +1 -0
- package/.next/static/chunks/app/yo/layout-cf84f975aad4c719.js +1 -0
- package/.next/static/chunks/app/yo/page-719dc5f213fdfb30.js +1 -0
- package/.next/static/chunks/framework-a32a2a465584c0bc.js +1 -0
- package/.next/static/chunks/main-0f0f9142f74e7215.js +1 -0
- package/.next/static/chunks/main-app-24f0c92ba10af457.js +1 -0
- package/.next/static/chunks/pages/_app-4b3fb5e477a0267f.js +1 -0
- package/.next/static/chunks/pages/_error-c970d8b55ace1b48.js +1 -0
- package/.next/static/chunks/{webpack-768de8b7d6a7a27a.js → webpack-79ad58260e9b10b4.js} +1 -1
- package/.next/static/css/83cd401584ab787f.css +3 -0
- package/.next/trace +28 -28
- package/.next/types/app/yo/layout.ts +84 -0
- package/.next/types/app/yo/page.ts +84 -0
- package/.next/types/routes.d.ts +4 -2
- package/.next/types/validator.ts +18 -0
- package/bin/auramaxx.js +11 -26
- package/docs/ARCHITECTURE.md +1 -1
- package/docs/AUTH.md +6 -3
- package/docs/CLI.md +2 -0
- package/docs/MCP.md +2 -0
- package/docs/TROUBLESHOOTING.md +24 -0
- package/docs/credentials.md +2 -0
- package/package.json +2 -1
- package/prisma/migrations/20260227214000_update_agent_action_ttl_defaults/migration.sql +19 -0
- package/public/0a167e5e-4f52-4715-ae23-bf63d259a6b1.png +0 -0
- package/public/141ec92c-6780-4b23-838f-9a7bf1e91bb8.png +0 -0
- package/public/3afc4935-92cb-42af-9624-0b1341c12a5e.png +0 -0
- package/public/43947df5-dbcf-4e49-ab8b-41b9162c0410.png +0 -0
- package/public/5aeae9ce-0d38-49ea-8fd1-167892a04a85.png +0 -0
- package/public/660e4ea3-a3a6-4be4-a8ca-2cb74c51dfb5.png +0 -0
- package/public/733f02d7-6b58-4ba6-a5c8-d062cd205e1d.png +0 -0
- package/public/a32d65cb-95b0-4977-be6b-cf69f515afbe.png +0 -0
- package/public/agent1.png +0 -0
- package/public/agent10.png +0 -0
- package/public/agent2.png +0 -0
- package/public/agent3.png +0 -0
- package/public/agent4.png +0 -0
- package/public/agent5.png +0 -0
- package/public/agent6.png +0 -0
- package/public/agent7.png +0 -0
- package/public/agent8.png +0 -0
- package/public/agent9.png +0 -0
- package/public/c4938305-b811-4ccc-91db-94d309734827.png +0 -0
- package/public/f2ca6825-a4f3-4107-815c-51ee740dfc09.png +0 -0
- package/public/llm.txt +2 -0
- package/public/llms.txt +39 -0
- package/public/ss-dark1.png +0 -0
- package/public/ss-dark1.webp +0 -0
- package/public/ss-dark2.png +0 -0
- package/public/ss-dark2.webp +0 -0
- package/public/ss-dark3.png +0 -0
- package/public/ss-dark3.webp +0 -0
- package/public/ss-light1.png +0 -0
- package/public/ss-light1.webp +0 -0
- package/public/ss-light2.png +0 -0
- package/public/ss-light2.webp +0 -0
- package/public/ss-light3.png +0 -0
- package/public/ss-light3.webp +0 -0
- package/shared/agent-profile-schema.ts +81 -0
- package/shared/credential-field-schema.ts +12 -0
- package/skills/auramaxx/SKILL.md +71 -691
- package/src/app/UnlockPageClient.tsx +1939 -0
- package/src/app/api/page.tsx +8 -9
- package/src/app/api/restart/route.ts +2 -18
- package/src/app/api/update/route.ts +104 -51
- package/src/app/approve/[actionId]/page.tsx +4 -1
- package/src/app/docs/DocsPageContent.tsx +3 -3
- package/src/app/globals.css +94 -0
- package/src/app/layout.tsx +1 -0
- package/src/app/page.tsx +25 -1935
- package/src/app/yo/layout.tsx +29 -0
- package/src/app/yo/page.tsx +528 -0
- package/src/components/HumanActionBar.tsx +34 -8
- package/src/components/agent/AgentSidebar.tsx +3 -1
- package/src/components/agent/CredentialAgent.tsx +5 -1
- package/src/components/agent/CredentialDetail.tsx +32 -1
- package/src/components/agent/CredentialForm.tsx +94 -7
- package/src/components/agent/CredentialRow.tsx +8 -1
- package/src/components/agent/credentialFormName.ts +22 -1
- package/src/components/agent/types.ts +2 -2
- package/src/components/design-system/Modal.tsx +14 -1
- package/src/hooks/useUpdateChecker.ts +17 -1
- package/src/lib/pino.ts +77 -8
- package/src/server/cli/commands/actions.ts +1 -1
- package/src/server/cli/commands/agent.ts +110 -65
- package/src/server/cli/commands/approve.ts +1 -1
- package/src/server/cli/commands/auth.ts +81 -20
- package/src/server/cli/commands/start.ts +42 -3
- package/src/server/cli/commands/token.ts +2 -2
- package/src/server/cli/lib/escalation.ts +109 -24
- package/src/server/cli/lib/process.ts +54 -1
- package/src/server/cli/socket.ts +1 -1
- package/src/server/index.ts +2 -0
- package/src/server/lib/agent-profile-records.ts +72 -0
- package/src/server/lib/credential-transport.ts +27 -11
- package/src/server/lib/defaults.ts +3 -3
- package/src/server/lib/escalation-responder.ts +1 -1
- package/src/server/lib/resolve-action.ts +2 -2
- package/src/server/lib/update-check.ts +1 -1
- package/src/server/mcp/server.ts +6 -1
- package/src/server/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -1
- package/src/server/routes/actions.ts +2 -2
- package/src/server/routes/agent-profiles.ts +82 -0
- package/src/server/routes/auth.ts +39 -4
- package/src/server/routes/credentials.ts +18 -0
- package/src/server/tests/cli/agent-auth.test.ts +20 -39
- package/src/server/tests/cli/agent.test.ts +18 -0
- package/src/server/tests/cli/auth-action-flag.test.ts +3 -2
- package/src/server/tests/cli/bin-entrypoint.test.ts +35 -11
- package/src/server/tests/cli/escalation.test.ts +7 -3
- package/src/server/tests/cli/process.test.ts +3 -3
- package/src/server/tests/cli/socket.test.ts +2 -2
- package/src/server/tests/cli/start-run.test.ts +24 -1
- package/src/server/tests/endpoints/actions.test.ts +2 -2
- package/src/server/tests/endpoints/agent-profiles.test.ts +117 -0
- package/src/server/tests/endpoints/auth.test.ts +34 -0
- package/src/server/tests/lib/credential-transport.test.ts +68 -2
- package/src/server/tests/lib/defaults.test.ts +2 -2
- package/src/server/tests/lib/escalation-responder.test.ts +2 -2
- package/src/server/tests/lib/update-check.test.ts +1 -1
- package/src/server/tests/setup.ts +7 -0
- package/src/server/tsconfig.tsbuildinfo +1 -1
- package/src/server/types.ts +1 -1
- package/.next/static/AcaCjQ4akovHBUnVGPpfN/_buildManifest.js +0 -1
- package/.next/static/chunks/1168.63dbb444a33b1867.js +0 -1
- package/.next/static/chunks/1255-e8718b02724690dd.js +0 -1
- package/.next/static/chunks/142-aeaf7ffa9c53516d.js +0 -1
- package/.next/static/chunks/2505.22aaa333fd65908f.js +0 -1
- package/.next/static/chunks/2619-3c9e02e22d10480a.js +0 -1
- package/.next/static/chunks/2927.e7e9e2a1b8d2dc61.js +0 -1
- package/.next/static/chunks/3573-27e17f4ff2dd86ed.js +0 -1
- package/.next/static/chunks/3609.6f8e0ecd6de9566c.js +0 -1
- package/.next/static/chunks/3667-d6770121629db38b.js +0 -1
- package/.next/static/chunks/3826.7dfe96467cd74e45.js +0 -1
- package/.next/static/chunks/4256.50cb375c979ffd5a.js +0 -1
- package/.next/static/chunks/4685-3f8d92f574366fec.js +0 -1
- package/.next/static/chunks/4901-54c1ac380b7b43bb.js +0 -1
- package/.next/static/chunks/4919-fe6f1553abfc9420.js +0 -1
- package/.next/static/chunks/4bd1b696-f785427dddbba9fb.js +0 -1
- package/.next/static/chunks/5336-bd251f91235f7c11.js +0 -1
- package/.next/static/chunks/5442-be197c885bf12079.js +0 -1
- package/.next/static/chunks/5553-c8b86fe3513fce04.js +0 -59
- package/.next/static/chunks/6233-44e6fe57a552a816.js +0 -1
- package/.next/static/chunks/626.2583673a0386a81b.js +0 -1
- package/.next/static/chunks/6872-6442f2f5cce36ce5.js +0 -1
- package/.next/static/chunks/7411-3ca797c21b722ccd.js +0 -1
- package/.next/static/chunks/7616-b8bd37ce1f735d6f.js +0 -1
- package/.next/static/chunks/786-9ed39f96091b2be4.js +0 -1
- package/.next/static/chunks/8273-922091226ba84a94.js +0 -1
- package/.next/static/chunks/8357.6159472717ff7d11.js +0 -1
- package/.next/static/chunks/9062-3eb1607c96486f88.js +0 -1
- package/.next/static/chunks/9380.93f361baab2eefdf.js +0 -1
- package/.next/static/chunks/app/_not-found/page-c3b87025baf0a9c2.js +0 -1
- package/.next/static/chunks/app/api/[...doc]/page-790c4b33ba1fde4a.js +0 -1
- package/.next/static/chunks/app/api/agent-requests/route-e83b12cbab2e8707.js +0 -1
- package/.next/static/chunks/app/api/apps/install/route-e83b12cbab2e8707.js +0 -1
- package/.next/static/chunks/app/api/apps/manifests/route-e83b12cbab2e8707.js +0 -1
- package/.next/static/chunks/app/api/apps/static/[...path]/route-e83b12cbab2e8707.js +0 -1
- package/.next/static/chunks/app/api/docs/plain/route-e83b12cbab2e8707.js +0 -1
- package/.next/static/chunks/app/api/events/route-e83b12cbab2e8707.js +0 -1
- package/.next/static/chunks/app/api/import-from-openclaw/[channel]/route-e83b12cbab2e8707.js +0 -1
- package/.next/static/chunks/app/api/import-from-openclaw/route-e83b12cbab2e8707.js +0 -1
- package/.next/static/chunks/app/api/import-from-openclaw/validate/[channel]/route-e83b12cbab2e8707.js +0 -1
- package/.next/static/chunks/app/api/page-b53f9aa17a4c5201.js +0 -1
- package/.next/static/chunks/app/api/restart/route-e83b12cbab2e8707.js +0 -1
- package/.next/static/chunks/app/api/update/route-e83b12cbab2e8707.js +0 -1
- package/.next/static/chunks/app/api/version/route-e83b12cbab2e8707.js +0 -1
- package/.next/static/chunks/app/api/workspace/[id]/apps/[wid]/route-e83b12cbab2e8707.js +0 -1
- package/.next/static/chunks/app/api/workspace/[id]/apps/route-e83b12cbab2e8707.js +0 -1
- package/.next/static/chunks/app/api/workspace/[id]/export/route-e83b12cbab2e8707.js +0 -1
- package/.next/static/chunks/app/api/workspace/[id]/route-e83b12cbab2e8707.js +0 -1
- package/.next/static/chunks/app/api/workspace/config/route-e83b12cbab2e8707.js +0 -1
- package/.next/static/chunks/app/api/workspace/import/route-e83b12cbab2e8707.js +0 -1
- package/.next/static/chunks/app/api/workspace/route-e83b12cbab2e8707.js +0 -1
- package/.next/static/chunks/app/app-legacy-do-not-use/page-0052191daef60036.js +0 -1
- package/.next/static/chunks/app/approve/[actionId]/page-45cd3b8fa062d5e5.js +0 -1
- package/.next/static/chunks/app/docs/[...doc]/page-632ac406200b66fe.js +0 -1
- package/.next/static/chunks/app/docs/page-b7556394709b43df.js +0 -1
- package/.next/static/chunks/app/error-3d6057da512253d8.js +0 -1
- package/.next/static/chunks/app/health/page-80c985cd72328b74.js +0 -1
- package/.next/static/chunks/app/hello/page-fd71babcd192729b.js +0 -1
- package/.next/static/chunks/app/layout-285c6ef3f16bae63.js +0 -1
- package/.next/static/chunks/app/page-85017185df14c37b.js +0 -1
- package/.next/static/chunks/app/privacy/page-faf36cd0dde6dfa3.js +0 -1
- package/.next/static/chunks/app/share/[token]/page-22d51d6c5a47bb75.js +0 -1
- package/.next/static/chunks/app/terms/page-faf36cd0dde6dfa3.js +0 -1
- package/.next/static/chunks/framework-e60c938074ff7136.js +0 -1
- package/.next/static/chunks/main-447abf206d7ebd2f.js +0 -1
- package/.next/static/chunks/main-app-f63b86bdbf5b7b88.js +0 -1
- package/.next/static/chunks/pages/_app-6c8c2371b16a04b8.js +0 -1
- package/.next/static/chunks/pages/_error-94812ad32cad7365.js +0 -1
- package/.next/static/css/eb25c6452113486f.css +0 -3
- /package/.next/static/{AcaCjQ4akovHBUnVGPpfN → WshFGr6RxGYP6AbWuT9OG}/_ssgManifest.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2927],{27937:(e,t,a)=>{a.d(t,{A:()=>l});let l=(0,a(71847).A)("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]])},37586:(e,t,a)=>{a.d(t,{A:()=>l});let l=(0,a(71847).A)("MessageSquare",[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}]])},55867:(e,t,a)=>{a.d(t,{A:()=>l});let l=(0,a(71847).A)("KeyRound",[["path",{d:"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z",key:"1s6t7t"}],["circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor",key:"w0ekpg"}]])},71360:(e,t,a)=>{a.d(t,{A:()=>l});let l=(0,a(71847).A)("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]])},72927:(e,t,a)=>{a.r(t),a.d(t,{SetupWizardApp:()=>A,default:()=>I});var l=a(95155),s=a(12115),r=a(5917),o=a(24033),c=a(27937),n=a(35299),i=a(78192);let d=(0,a(71847).A)("FlaskConical",[["path",{d:"M14 2v6a2 2 0 0 0 .245.96l5.51 10.08A2 2 0 0 1 18 22H6a2 2 0 0 1-1.755-2.96l5.51-10.08A2 2 0 0 0 10 8V2",key:"18mbvz"}],["path",{d:"M6.453 15h11.094",key:"3shlmq"}],["path",{d:"M8.5 2h7",key:"csnxdl"}]]);var x=a(71360),p=a(65229),u=a(55867),m=a(39068),v=a(37586),h=a(93499),y=a(53667),f=a(90960);let g={"claude-cli":null,"claude-api":"anthropic","codex-cli":null,"openai-api":"openai"},j={anthropic:"Anthropic",openai:"OpenAI"},b={anthropic:"sk-ant-...",openai:"sk-..."},k={"claude-cli":"Make sure the `claude` CLI is installed and you're logged in (`claude login`).","codex-cli":"Make sure the `codex` CLI is installed and you're authenticated."};function N(e){let{number:t,title:a,subtitle:s,icon:n,done:i,expanded:d,onToggle:x,children:p,doneContent:u}=e;return(0,l.jsxs)("div",{style:{border:"1px solid var(--color-border)",background:"var(--color-surface)"},children:[(0,l.jsxs)("button",{onClick:x,className:"w-full flex items-center gap-3 p-3 text-left",children:[(0,l.jsx)("div",{className:"w-6 h-6 flex items-center justify-center flex-shrink-0",style:{background:i?"var(--color-success)":"var(--color-background-alt)",border:i?"none":"1px solid var(--color-border)"},children:i?(0,l.jsx)(r.A,{size:12,style:{color:"white"}}):(0,l.jsx)("span",{className:"font-mono text-[10px] font-bold",style:{color:"var(--color-text-muted)"},children:t})}),(0,l.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,l.jsxs)("div",{className:"flex items-center gap-2",children:[(0,l.jsx)("span",{style:{color:i?"var(--color-success)":"var(--color-text)"},children:n}),(0,l.jsx)("span",{className:"font-mono text-[11px] font-bold",style:{color:i?"var(--color-success)":"var(--color-text)"},children:a})]}),(0,l.jsx)("div",{className:"font-mono text-[9px]",style:{color:"var(--color-text-muted)"},children:s})]}),d?(0,l.jsx)(o.A,{size:14,style:{color:"var(--color-text-muted)"}}):(0,l.jsx)(c.A,{size:14,style:{color:"var(--color-text-muted)"}})]}),d&&(0,l.jsx)("div",{className:"px-3 pb-3 border-t",style:{borderColor:"var(--color-border)"},children:i?u:p})]})}let A=()=>{let[e,t]=(0,s.useState)(null),[a,o]=(0,s.useState)(!0),[c,A]=(0,s.useState)(null),[I,C]=(0,s.useState)(!1),[w,S]=(0,s.useState)(null),[z,F]=(0,s.useState)(!0),[T,E]=(0,s.useState)("claude-cli"),[H,P]=(0,s.useState)(""),[W,M]=(0,s.useState)(!1),[D,V]=(0,s.useState)(""),[L,R]=(0,s.useState)(!1),[$,O]=(0,s.useState)(null),[_,q]=(0,s.useState)(!1),[U,K]=(0,s.useState)("admin"),[Y,B]=(0,s.useState)(!1),[G,X]=(0,s.useState)(""),[J,Q]=(0,s.useState)(!1),[Z,ee]=(0,s.useState)(""),[et,ea]=(0,s.useState)(""),[el,es]=(0,s.useState)(""),[er,eo]=(0,s.useState)(""),[ec,en]=(0,s.useState)(!0),[ei,ed]=(0,s.useState)("token"),[ex,ep]=(0,s.useState)(!1),[eu,em]=(0,s.useState)(""),[ev,eh]=(0,s.useState)(""),[,ey]=(0,s.useState)(""),[ef,eg]=(0,s.useState)(""),ej=(0,s.useRef)(null),[eb,ek]=(0,s.useState)(null),[eN,eA]=(0,s.useState)(!1),[eI,eC]=(0,s.useState)(null),[ew,eS]=(0,s.useState)(!1),[ez,eF]=(0,s.useState)(!1),[eT,eE]=(0,s.useState)("provider"),[eH,eP]=(0,s.useState)(!1),eW=(0,s.useCallback)(async()=>{try{let e=await f.FH.get(f.jI.Wallet,"/ai/status");return S(e),E(e.activeProvider),e}catch(e){return null}finally{F(!1)}},[]),eM=(0,s.useCallback)(e=>{if(!e)return!1;let t=e.providers.find(t=>t.mode===e.activeProvider);return!!(null==t?void 0:t.available)},[]),eD=(0,s.useCallback)(async()=>{try{let e=await f.FH.get(f.jI.Wallet,"/setup");return t(e),e}catch(e){return null}},[]),eV=(0,s.useCallback)((e,t,a)=>{eM(e)||(null!=a?a:eH)?(null==t?void 0:t.apiKeys.alchemy)?(null==t?void 0:t.adapters.telegram)?A(null):A(3):A(2):A(1)},[eM,eH]);(0,s.useEffect)(()=>{(async()=>{try{let[e,t]=await Promise.all([eD(),eW(),f.FH.get(f.jI.Wallet,"/defaults").then(e=>{let t=(e.permissions||[]).find(e=>"permissions.agent_tier"===e.key);t&&K(t.value)}).catch(()=>{})]),a=(null==e?void 0:e.address)||"unknown",l="true"===localStorage.getItem("agentPaired:".concat(a));eP(l),l&&eE("agent"),eV(t,e,l)}finally{o(!1)}})()},[eD,eW,eV]);let eL=async e=>{K(e),B(!0);try{await f.FH.patch(f.jI.Wallet,"/defaults/".concat(encodeURIComponent("permissions.agent_tier")),{value:e})}catch(t){K("admin"===e?"restricted":"admin")}finally{B(!1)}},eR=async()=>{let t=g[T];if(t){V(""),M(!0);try{let a=await f.FH.post(f.jI.Wallet,"/apikeys/validate",{service:t,key:H.trim()});if(!a.valid)return void V(a.error||"Invalid key");await f.FH.post(f.jI.Wallet,"/apikeys",{service:t,name:"default",key:H.trim()}),P(""),await f.FH.patch(f.jI.Wallet,"/defaults/".concat(encodeURIComponent("ai.provider")),{value:T}),ek(null);let l=await eW();eV(l,e)}catch(e){V(e instanceof Error?e.message:"Failed to validate")}finally{M(!1)}}},e$=async()=>{V(""),R(!0),O(null);try{let t=await f.FH.get(f.jI.Wallet,"/ai/status");S(t);let a=t.providers.find(e=>e.mode===T);(null==a?void 0:a.available)?(O("success"),q(!0),await f.FH.patch(f.jI.Wallet,"/defaults/".concat(encodeURIComponent("ai.provider")),{value:T}),ek(null),eV(t,e),q(!1)):(O("fail"),V((null==a?void 0:a.reason)||"Provider not available"))}catch(e){O("fail"),V(e instanceof Error?e.message:"Test failed")}finally{R(!1)}},eO=async()=>{ee(""),Q(!0);try{let e=await f.FH.post(f.jI.Wallet,"/apikeys/validate",{service:"alchemy",key:G});if(!e.valid)return void ee(e.error||"Invalid key");await f.FH.post(f.jI.Wallet,"/apikeys",{service:"alchemy",name:"default",key:G}),X(""),ek(null);let t=await eD();eV(w,t)}catch(e){ee(e instanceof Error?e.message:"Failed to validate")}finally{Q(!1)}},e_=async()=>{em(""),ep(!0);try{var e;let t=await f.FH.post(f.jI.Wallet,"/apikeys/validate",{service:"adapter:telegram",key:et});if(!t.valid)return void em(t.error||"Invalid bot token");es((null==(e=t.info)?void 0:e.botUsername)||"");let a=await f.FH.post(f.jI.Wallet,"/adapters/telegram/setup-link",{botToken:et});if(!a.success){em(a.error||"Failed to generate setup link"),ed("chatId");return}eh(a.link),ey(a.setupToken),es(a.botUsername),ed("detecting"),eq(a.setupToken)}catch(e){em(e instanceof Error?e.message:"Failed to validate")}finally{ep(!1)}},eq=async e=>{let t=new AbortController;ej.current=t;for(let a=0;a<3;a++){if(t.signal.aborted)return;try{let a=await f.FH.post(f.jI.Wallet,"/adapters/telegram/detect-chat",{setupToken:e});if(t.signal.aborted)return;if(a.chatId){eo(a.chatId);let e=a.username?"@".concat(a.username):a.firstName||"";eg(e),ed("testing");try{await f.FH.post(f.jI.Wallet,"/apikeys",{service:"adapter:telegram",name:"botToken",key:et}),await f.FH.post(f.jI.Wallet,"/adapters",{type:"telegram",enabled:!0,config:{chatId:a.chatId},chat:{enabled:!0}}),await f.FH.post(f.jI.Wallet,"/adapters/restart");try{await f.FH.post(f.jI.Wallet,"/adapters/test",{type:"telegram"})}catch(e){}ed("done"),ea(""),ek(null);let e=await eD();eV(w,e)}catch(e){ed("chatId")}return}}catch(e){if(t.signal.aborted)return;break}}t.signal.aborted||(ed("chatId"),em("Auto-detection timed out. Enter your chat ID manually."))};(0,s.useEffect)(()=>()=>{var e;null==(e=ej.current)||e.abort()},[]);let eU=async()=>{em(""),ep(!0),ed("testing");try{await f.FH.post(f.jI.Wallet,"/apikeys",{service:"adapter:telegram",name:"botToken",key:et}),await f.FH.post(f.jI.Wallet,"/adapters",{type:"telegram",enabled:!0,config:{chatId:er},...ec?{chat:{enabled:!0}}:{}}),await f.FH.post(f.jI.Wallet,"/adapters/restart");let e=await f.FH.post(f.jI.Wallet,"/adapters/test",{type:"telegram"});if(!e.success){em(e.error||"Test message failed"),ed("chatId");return}ed("done"),ea(""),eo(""),ek(null);let t=await eD();eV(w,t)}catch(e){em(e instanceof Error?e.message:"Activation failed"),ed("chatId")}finally{ep(!1)}},eK=async e=>{let{apiKeys:t}=await f.FH.get(f.jI.Wallet,"/apikeys"),a=t.find(t=>t.service===e);a&&await f.FH.delete(f.jI.Wallet,"/apikeys/".concat(a.id))},eY=async()=>{eS(!0);try{await eK("alchemy"),ek(2);let e=await eD();eV(w,e)}finally{eS(!1)}},eB=async()=>{eF(!0);try{var e;null==(e=ej.current)||e.abort(),await f.FH.delete(f.jI.Wallet,"/adapters/telegram"),await eK("adapter:telegram"),await f.FH.post(f.jI.Wallet,"/adapters/restart"),ea(""),es(""),eo(""),en(!1),eh(""),ey(""),eg(""),ed("token"),em(""),ek(3);let t=await eD();eV(w,t)}finally{eF(!1)}},eG=()=>{let t=(null==e?void 0:e.address)||"unknown";localStorage.setItem("setupWizardDismissed:".concat(t),"true"),C(!0)};if(I)return(0,l.jsx)("div",{className:"flex items-center justify-center py-8",children:(0,l.jsx)("div",{className:"font-mono text-[10px]",style:{color:"var(--color-text-muted)"},children:"Dismissed. Close this app with the X button above."})});if(a)return(0,l.jsx)("div",{className:"flex items-center justify-center py-8",children:(0,l.jsx)(n.A,{size:20,className:"animate-spin",style:{color:"var(--color-text-muted)"}})});let eX=eM(w),eJ=(eX||eH)&&(null==e?void 0:e.apiKeys.alchemy)&&(null==e?void 0:e.adapters.telegram),eQ=null==w?void 0:w.providers.find(e=>e.mode===T),eZ=null==w?void 0:w.providers.find(e=>e.mode===w.activeProvider),e0=g[T],e1=null===e0;return(0,l.jsxs)("div",{className:"space-y-1 p-1",children:[(0,l.jsx)("div",{className:"text-center mb-3",children:(0,l.jsx)("div",{className:"font-mono text-[10px] tracking-widest",style:{color:"var(--color-text-muted)"},children:eJ?"SETUP COMPLETE":"FINISH YOUR SETUP"})}),eJ&&(0,l.jsxs)("div",{className:"text-center py-4 space-y-3",children:[(0,l.jsx)("div",{className:"w-10 h-10 mx-auto flex items-center justify-center",style:{background:"var(--color-success)",color:"white"},children:(0,l.jsx)(r.A,{size:20})}),(0,l.jsx)("div",{className:"font-mono text-xs",style:{color:"var(--color-text)"},children:"All set! Your wallet is fully configured."})]}),(0,l.jsx)(N,{number:1,title:"AI Agent",subtitle:"Connect an AI provider or pair with an agent",icon:(0,l.jsx)(i.A,{size:14}),done:(eX||eH)&&1!==eb,expanded:1===c,onToggle:()=>A(1===c?null:1),doneContent:(0,l.jsxs)("div",{className:"space-y-2 pt-2",children:[eX&&!eH&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)("div",{className:"flex items-center gap-2 p-2",style:{background:"var(--color-background-alt)",border:"1px solid var(--color-border)"},children:[(0,l.jsx)(r.A,{size:12,style:{color:"var(--color-success)"}}),(0,l.jsxs)("span",{className:"font-mono text-[10px]",style:{color:"var(--color-success)"},children:[(null==eZ?void 0:eZ.label)||(null==w?void 0:w.activeProvider)||"AI provider"," configured"]})]}),"success"===eI&&(0,l.jsxs)("div",{className:"flex items-center gap-2 p-1.5",style:{border:"1px solid var(--color-success)",color:"var(--color-success)"},children:[(0,l.jsx)(r.A,{size:10}),(0,l.jsx)("span",{className:"font-mono text-[9px]",children:"Provider available"})]}),"fail"===eI&&(0,l.jsx)("div",{className:"font-mono text-[9px]",style:{color:"var(--color-warning)"},children:"Provider not available"}),(0,l.jsxs)("div",{className:"flex gap-2",children:[(0,l.jsx)(y.$n,{variant:"ghost",size:"sm",onClick:async()=>{eA(!0),eC(null);try{let e=await f.FH.get(f.jI.Wallet,"/ai/status");S(e);let t=e.providers.find(t=>t.mode===e.activeProvider);eC((null==t?void 0:t.available)?"success":"fail")}catch(e){eC("fail")}finally{eA(!1)}},disabled:eN,loading:eN,icon:(0,l.jsx)(d,{size:10}),children:"TEST"}),(0,l.jsx)(y.$n,{variant:"ghost",size:"sm",onClick:()=>{P(""),V(""),O(null),eC(null),ek(1)},icon:(0,l.jsx)(x.A,{size:10}),children:"CHANGE"})]})]}),eH&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)("div",{className:"flex items-center gap-2 p-2",style:{background:"var(--color-background-alt)",border:"1px solid var(--color-border)"},children:[(0,l.jsx)(r.A,{size:12,style:{color:"var(--color-success)"}}),(0,l.jsx)("span",{className:"font-mono text-[10px]",style:{color:"var(--color-success)"},children:"Agent paired externally"})]}),(0,l.jsx)(y.$n,{variant:"ghost",size:"sm",onClick:()=>{let t=(null==e?void 0:e.address)||"unknown";localStorage.removeItem("agentPaired:".concat(t)),eP(!1),ek(1)},icon:(0,l.jsx)(x.A,{size:10}),children:"CHANGE"})]})]}),children:(0,l.jsxs)("div",{className:"space-y-3 pt-2",children:[(0,l.jsxs)("div",{className:"flex gap-2",children:[(0,l.jsxs)("button",{onClick:()=>eE("provider"),className:"flex-1 p-1.5 font-mono text-[9px] text-left",style:{border:"provider"===eT?"1px solid var(--color-accent, #ccff00)":"1px solid var(--color-border)",background:"provider"===eT?"var(--color-background-alt)":"transparent",color:"provider"===eT?"var(--color-text)":"var(--color-text-muted)"},children:[(0,l.jsx)("div",{className:"font-bold",children:"AI Provider"}),(0,l.jsx)("div",{className:"text-[8px]",style:{color:"var(--color-text-muted)"},children:"Claude Max, API keys"})]}),(0,l.jsxs)("button",{onClick:()=>eE("agent"),className:"flex-1 p-1.5 font-mono text-[9px] text-left",style:{border:"agent"===eT?"1px solid var(--color-accent, #ccff00)":"1px solid var(--color-border)",background:"agent"===eT?"var(--color-background-alt)":"transparent",color:"agent"===eT?"var(--color-text)":"var(--color-text-muted)"},children:[(0,l.jsx)("div",{className:"font-bold",children:"Pair with Agent"}),(0,l.jsx)("div",{className:"text-[8px]",style:{color:"var(--color-text-muted)"},children:"MCP, skill, CLI, API"})]})]}),"provider"===eT&&(0,l.jsx)(l.Fragment,{children:z?(0,l.jsx)("div",{className:"py-3 flex items-center justify-center",children:(0,l.jsx)(n.A,{size:14,className:"animate-spin",style:{color:"var(--color-text-muted)"}})}):(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)("div",{className:"space-y-1",children:[(0,l.jsx)("div",{className:"font-mono text-[9px] font-bold",style:{color:"var(--color-text)"},children:"Provider"}),null==w?void 0:w.providers.map(e=>(0,l.jsxs)("label",{className:"flex items-center gap-2 cursor-pointer py-1 px-1.5",style:{border:T===e.mode?"1px solid var(--color-accent, #ccff00)":"1px solid transparent",background:T===e.mode?"var(--color-background-alt, #f4f4f5)":"transparent"},children:[(0,l.jsx)("input",{type:"radio",name:"setup-ai-provider",value:e.mode,checked:T===e.mode,onChange:()=>{E(e.mode),P(""),V(""),O(null)},className:"accent-[var(--color-accent,#ccff00)]"}),(0,l.jsx)("span",{className:"font-mono text-[9px] flex-1",style:{color:"var(--color-text)"},children:e.label}),e.available?(0,l.jsx)(r.A,{size:10,style:{color:"var(--color-success, #22c55e)"}}):(0,l.jsx)(p.A,{size:10,style:{color:"var(--color-text-muted)"}}),!e.available&&(0,l.jsx)("span",{className:"font-mono text-[8px]",style:{color:"var(--color-text-muted)"},children:e.reason})]},e.mode))]}),e1&&eQ&&(0,l.jsxs)("div",{className:"space-y-2",children:[(0,l.jsx)("div",{className:"p-1.5 font-mono text-[8px]",style:{background:"var(--color-background-alt)",border:"1px solid var(--color-border)",color:"var(--color-text-muted)"},children:k[T]||"Make sure the CLI is installed and authenticated."}),"success"===$&&(0,l.jsxs)("div",{className:"flex items-center gap-2 p-1.5",style:{border:"1px solid var(--color-success)",color:"var(--color-success)"},children:[(0,l.jsx)(r.A,{size:10}),(0,l.jsx)("span",{className:"font-mono text-[9px]",children:"Available! Provider saved."})]}),(0,l.jsx)(y.$n,{size:"sm",onClick:e$,disabled:L||_,loading:L||_,icon:(0,l.jsx)(d,{size:10}),children:"TEST"})]}),!e1&&e0&&(0,l.jsxs)("div",{className:"space-y-2",children:[(0,l.jsx)(y.ks,{label:"".concat(j[e0]||e0," API Key"),type:"password",value:H,onChange:e=>{P(e.target.value),V("")},placeholder:b[e0]||"Paste your API key...",compact:!0,rightElement:(0,l.jsx)(u.A,{size:10,style:{color:"var(--color-text-muted)"}})}),(0,l.jsx)(y.$n,{size:"sm",onClick:eR,disabled:W||!H.trim(),loading:W,children:"VALIDATE & SAVE"})]}),D&&(0,l.jsx)("div",{className:"font-mono text-[9px]",style:{color:"var(--color-warning)"},children:D}),(0,l.jsxs)("div",{className:"space-y-1 pt-2 mt-2",style:{borderTop:"1px solid var(--color-border)"},children:[(0,l.jsx)("div",{className:"font-mono text-[9px] font-bold",style:{color:"var(--color-text)"},children:"Permission Level"}),(0,l.jsxs)("div",{className:"flex gap-2",children:[(0,l.jsxs)("button",{onClick:()=>eL("admin"),disabled:Y,className:"flex-1 p-1.5 font-mono text-[9px] text-left",style:{border:"admin"===U?"1px solid var(--color-accent, #ccff00)":"1px solid var(--color-border)",background:"admin"===U?"var(--color-background-alt)":"transparent",color:"admin"===U?"var(--color-text)":"var(--color-text-muted)",opacity:Y?.5:1},children:[(0,l.jsx)("div",{className:"font-bold",children:"Full Admin"}),(0,l.jsx)("div",{className:"text-[8px]",style:{color:"var(--color-text-muted)"},children:"Recommended"})]}),(0,l.jsxs)("button",{onClick:()=>eL("restricted"),disabled:Y,className:"flex-1 p-1.5 font-mono text-[9px] text-left",style:{border:"restricted"===U?"1px solid var(--color-accent, #ccff00)":"1px solid var(--color-border)",background:"restricted"===U?"var(--color-background-alt)":"transparent",color:"restricted"===U?"var(--color-text)":"var(--color-text-muted)",opacity:Y?.5:1},children:[(0,l.jsx)("div",{className:"font-bold",children:"Restricted"}),(0,l.jsx)("div",{className:"text-[8px]",style:{color:"var(--color-text-muted)"},children:"Approval required"})]})]})]})]})}),"agent"===eT&&(0,l.jsxs)("div",{className:"space-y-2",children:[(0,l.jsx)("div",{className:"font-mono text-[9px]",style:{color:"var(--color-text-muted)"},children:"Choose the path that matches your setup:"}),[{label:"Agent Skill",desc:"Claude Code, Cursor, VS Code, Windsurf",cmd:"npx skills add Aura-Industry/auramaxx",note:'Then ask: "Set up my wallet"'},{label:"MCP Server",desc:"Claude Desktop or any MCP client",cmd:"npx auramaxx mcp --install",note:"Auto-configures your IDE"},{label:"Headless CLI",desc:"Local bots, CI/CD, containers",cmd:"npx tsx src/server/cli/index.ts",note:"Approve agent requests in terminal"},{label:"Direct API",desc:"Any language or platform",cmd:"curl http://localhost:4242/health",note:"POST /auth to bootstrap a token"}].map(e=>(0,l.jsxs)("div",{className:"p-2",style:{background:"var(--color-background-alt)",border:"1px solid var(--color-border)"},children:[(0,l.jsxs)("div",{className:"flex items-center justify-between",children:[(0,l.jsx)("span",{className:"font-mono text-[10px] font-bold",style:{color:"var(--color-text)"},children:e.label}),(0,l.jsx)("span",{className:"font-mono text-[8px]",style:{color:"var(--color-text-muted)"},children:e.desc})]}),(0,l.jsx)("div",{className:"font-mono text-[9px] mt-1 px-1.5 py-1",style:{background:"var(--color-surface)",border:"1px solid var(--color-border)",color:"var(--color-text-muted)"},children:e.cmd}),(0,l.jsx)("div",{className:"font-mono text-[8px] mt-1",style:{color:"var(--color-text-faint, #9ca3af)"},children:e.note})]},e.label)),(0,l.jsx)(y.$n,{size:"sm",onClick:()=>{let t=(null==e?void 0:e.address)||"unknown";localStorage.setItem("agentPaired:".concat(t),"true"),eP(!0),ek(null),eV(w,e)},className:"w-full",children:"I'VE CONNECTED"})]})]})}),(0,l.jsx)(N,{number:2,title:"RPC Provider",subtitle:"Add Alchemy for reliable RPC",icon:(0,l.jsx)(m.A,{size:14}),done:!!(null==e?void 0:e.apiKeys.alchemy)&&2!==eb,expanded:2===c,onToggle:()=>A(2===c?null:2),doneContent:(0,l.jsxs)("div",{className:"space-y-2 pt-2",children:[(0,l.jsxs)("div",{className:"flex items-center gap-2 p-2",style:{background:"var(--color-background-alt)",border:"1px solid var(--color-border)"},children:[(0,l.jsx)(r.A,{size:12,style:{color:"var(--color-success)"}}),(0,l.jsx)("span",{className:"font-mono text-[10px]",style:{color:"var(--color-success)"},children:"Alchemy key configured"})]}),(0,l.jsx)(y.$n,{variant:"ghost",size:"sm",onClick:eY,disabled:ew,loading:ew,icon:(0,l.jsx)(x.A,{size:10}),children:"REMOVE"})]}),children:(0,l.jsxs)("div",{className:"space-y-2 pt-2",children:[(0,l.jsx)(y.ks,{label:"ALCHEMY_KEY",type:"password",value:G,onChange:e=>X(e.target.value),placeholder:"Paste your Alchemy API key...",compact:!0}),Z&&(0,l.jsx)("div",{className:"font-mono text-[9px]",style:{color:"var(--color-warning)"},children:Z}),(0,l.jsx)(y.$n,{size:"sm",onClick:eO,disabled:J||!G,loading:J,children:"VALIDATE & SAVE"})]})}),(0,l.jsx)(N,{number:3,title:"Mobile Approvals",subtitle:"Approve agent actions via Telegram",icon:(0,l.jsx)(v.A,{size:14}),done:!!(null==e?void 0:e.adapters.telegram)&&3!==eb,expanded:3===c,onToggle:()=>A(3===c?null:3),doneContent:(0,l.jsxs)("div",{className:"space-y-2 pt-2",children:[(0,l.jsxs)("div",{className:"flex items-center gap-2 p-2",style:{background:"var(--color-background-alt)",border:"1px solid var(--color-border)"},children:[(0,l.jsx)(r.A,{size:12,style:{color:"var(--color-success)"}}),(0,l.jsx)("span",{className:"font-mono text-[10px]",style:{color:"var(--color-success)"},children:"Telegram connected"})]}),(0,l.jsx)("div",{className:"font-mono text-[8px]",style:{color:"var(--color-text-muted)"},children:"Agent chat is enabled by default. You can toggle it in System Defaults → Adapter Chat."}),(0,l.jsx)(y.$n,{variant:"ghost",size:"sm",onClick:eB,disabled:ez,loading:ez,icon:(0,l.jsx)(x.A,{size:10}),children:"REMOVE"})]}),children:(0,l.jsxs)("div",{className:"space-y-2 pt-2",children:["token"===ei&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("div",{className:"font-mono text-[8px]",style:{color:"var(--color-text-muted)"},children:"Approve agent actions from your phone via Telegram. Optionally, chat with your AI agent directly."}),(0,l.jsx)(y.ks,{label:"BOT_TOKEN",type:"password",value:et,onChange:e=>ea(e.target.value),placeholder:"123456:ABC-DEF...",compact:!0}),(0,l.jsx)("div",{className:"font-mono text-[8px]",style:{color:"var(--color-text-faint)"},children:"Create a bot via @BotFather on Telegram"}),(0,l.jsx)(y.$n,{size:"sm",onClick:e_,disabled:ex||!et,loading:ex,children:"VALIDATE BOT"})]}),"detecting"===ei&&(0,l.jsxs)(l.Fragment,{children:[el&&(0,l.jsxs)("div",{className:"flex items-center gap-2 p-2",style:{background:"var(--color-background-alt)",border:"1px solid var(--color-border)"},children:[(0,l.jsx)(r.A,{size:12,style:{color:"var(--color-success)"}}),(0,l.jsxs)("span",{className:"font-mono text-[10px]",style:{color:"var(--color-text)"},children:["@",el]})]}),(0,l.jsxs)(y.$n,{variant:"secondary",size:"sm",icon:(0,l.jsx)(h.A,{size:10}),onClick:()=>window.open(ev,"_blank"),children:["Open @",el," in Telegram"]}),(0,l.jsx)("div",{className:"font-mono text-[8px]",style:{color:"var(--color-text-faint)"},children:"Click the link above, then press Start in Telegram"}),(0,l.jsxs)("div",{className:"flex items-center gap-2 py-2",children:[(0,l.jsx)(n.A,{size:14,className:"animate-spin",style:{color:"var(--color-info)"}}),(0,l.jsx)("span",{className:"font-mono text-[10px]",style:{color:"var(--color-text-muted)"},children:"Waiting for you to press Start..."})]}),(0,l.jsx)(y.$n,{variant:"ghost",size:"sm",onClick:()=>{var e;null==(e=ej.current)||e.abort(),ed("chatId")},children:"ENTER MANUALLY"})]}),"chatId"===ei&&(0,l.jsxs)(l.Fragment,{children:[el&&(0,l.jsxs)("div",{className:"flex items-center gap-2 p-2",style:{background:"var(--color-background-alt)",border:"1px solid var(--color-border)"},children:[(0,l.jsx)(r.A,{size:12,style:{color:"var(--color-success)"}}),(0,l.jsxs)("span",{className:"font-mono text-[10px]",style:{color:"var(--color-text)"},children:["@",el]})]}),ef&&er&&(0,l.jsxs)("div",{className:"flex items-center gap-2 p-2",style:{background:"var(--color-background-alt)",border:"1px solid var(--color-success)"},children:[(0,l.jsx)(r.A,{size:12,style:{color:"var(--color-success)"}}),(0,l.jsxs)("span",{className:"font-mono text-[10px]",style:{color:"var(--color-success)"},children:["Detected: ",ef," (",er,")"]})]}),!ef&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(y.ks,{label:"CHAT_ID",type:"text",value:er,onChange:e=>eo(e.target.value),placeholder:"Your Telegram chat ID...",compact:!0}),(0,l.jsx)("div",{className:"font-mono text-[8px]",style:{color:"var(--color-text-faint)"},children:"Send /start to your bot, then use @userinfobot to get your chat ID"})]}),(0,l.jsxs)("label",{className:"flex items-center gap-2 py-1 cursor-pointer",children:[(0,l.jsx)("input",{type:"checkbox",checked:ec,onChange:e=>en(e.target.checked),className:"accent-[var(--color-accent)]"}),(0,l.jsx)("span",{className:"font-mono text-[10px]",style:{color:"var(--color-text)"},children:"Enable agent chat"})]}),(0,l.jsx)("div",{className:"font-mono text-[8px]",style:{color:"var(--color-text-faint)"},children:"Enable this to chat with your agent via Telegram. Your AI agent will respond to messages you send in this chat."}),(0,l.jsx)(y.$n,{size:"sm",onClick:eU,disabled:ex||!er,loading:ex,children:"ACTIVATE & TEST"})]}),"testing"===ei&&(0,l.jsxs)("div",{className:"flex items-center gap-2 py-2",children:[(0,l.jsx)(n.A,{size:14,className:"animate-spin",style:{color:"var(--color-info)"}}),(0,l.jsx)("span",{className:"font-mono text-[10px]",style:{color:"var(--color-text-muted)"},children:"Testing connection..."})]}),"done"===ei&&(0,l.jsxs)("div",{className:"flex items-center gap-2 py-2",children:[(0,l.jsx)(r.A,{size:14,style:{color:"var(--color-success)"}}),(0,l.jsx)("span",{className:"font-mono text-[10px]",style:{color:"var(--color-success)"},children:"Telegram connected!"})]}),eu&&(0,l.jsx)("div",{className:"font-mono text-[9px]",style:{color:"var(--color-warning)"},children:eu})]})}),!eJ&&(0,l.jsx)("div",{className:"pt-3 flex justify-end",children:(0,l.jsx)(y.$n,{variant:"ghost",size:"sm",onClick:eG,children:"SKIP FOR NOW"})}),eJ&&(0,l.jsx)("div",{className:"pt-3 flex justify-end",children:(0,l.jsx)(y.$n,{variant:"ghost",size:"sm",onClick:eG,children:"DISMISS"})})]})},I=A},78192:(e,t,a)=>{a.d(t,{A:()=>l});let l=(0,a(71847).A)("Bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]])},93499:(e,t,a)=>{a.d(t,{A:()=>l});let l=(0,a(71847).A)("ExternalLink",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]])}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3573,8357],{4814:(e,t,a)=>{"use strict";a.r(t),a.d(t,{WalletDetailApp:()=>U,default:()=>K});var s=a(95155),l=a(12115),o=a(99708),r=a(86651),n=a(35299),c=a(3166),i=a(33738),d=a(21190),x=a(75426),u=a(70532),m=a(65229),f=a(57828),p=a(46046),v=a(48055),h=a(93341),y=a(89559),b=a(6191),g=a(71360),j=a(93499),N=a(53667),A=a(62520),k=a(50850),w=a(54901),S=a(90960),C=a(93444),D=a(16405),E=a(99794),I=a(25223);function T(){return"0x0dfe1681"}async function L(e,t){if(0===t.length)return[];let a=t.map((e,t)=>({jsonrpc:"2.0",id:t,method:"eth_call",params:[{to:e.to,data:e.data},"latest"]}));try{let t=await fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});return(await t.json()).sort((e,t)=>e.id-t.id).map(e=>e.result||null)}catch(e){return console.error("[tokenData] Batch RPC failed:",e),t.map(()=>null)}}async function F(e,t,a){let s=new Map;if(0===t.length)return s;let l=[];for(let a=0;a<t.length;a++)l.push({to:t[a].tokenAddress,data:"0x70a08231"+D.nx(e,32).slice(2),type:"balance",assetIndex:a});for(let e=0;e<t.length;e++){let a=t[e];a.poolAddress&&("v2"===a.poolVersion?(l.push({to:a.poolAddress,data:"0x0902f1ac",type:"reserves",assetIndex:e}),l.push({to:a.poolAddress,data:T(),type:"token0",assetIndex:e})):("v3"===a.poolVersion||"v4"===a.poolVersion)&&(l.push({to:a.poolAddress,data:"0x3850c7bd",type:"slot0",assetIndex:e}),l.push({to:a.poolAddress,data:T(),type:"token0",assetIndex:e})))}let o=l.map(e=>({to:e.to,data:e.data})),r=await L(a,o),n=Array(t.length).fill(null),c=t.map(()=>({}));for(let e=0;e<l.length;e++){let t=l[e],a=r[e];switch(t.type){case"balance":n[t.assetIndex]=a;break;case"reserves":c[t.assetIndex].reserves=a;break;case"slot0":c[t.assetIndex].slot0=a;break;case"token0":c[t.assetIndex].token0=a}}for(let e=0;e<t.length;e++){let a=t[e],l=n[e],o="0",r="0";if(l&&"0x"!==l)try{let e=BigInt(l);r=e.toString(),o=E.Js(e,a.decimals)}catch(e){}let i=null,d=c[e];if(d.token0){let e=!1;try{e="0x"+d.token0.slice(26).toLowerCase()===a.tokenAddress.toLowerCase()}catch(e){}"v2"===a.poolVersion&&d.reserves?i=function(e,t){if(!e||"0x"===e)return null;try{let a=BigInt("0x"+e.slice(2,66)),s=BigInt("0x"+e.slice(66,130));if(a===BigInt(0)||s===BigInt(0))return null;if(t)return Number(s)/Number(a);return Number(a)/Number(s)}catch(e){return null}}(d.reserves,e):("v3"===a.poolVersion||"v4"===a.poolVersion)&&d.slot0&&(i=function(e,t){if(!e||"0x"===e)return null;try{let a=BigInt("0x"+e.slice(2,66));if(a===BigInt(0))return null;let s=BigInt(2)**BigInt(96),l=Number(a)/Number(s),o=l*l;if(t)return o;return o>0?1/o:null}catch(e){return null}}(d.slot0,e))}s.set(a.tokenAddress.toLowerCase(),{balance:o,balanceRaw:r,priceInEth:i})}return s}let O=new I.J3("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA");async function z(e,t,a){let s=new Map;if(0===t.length)return s;try{let o=new I.Ng(a,"confirmed"),r=new I.J3(e),n=await o.getParsedTokenAccountsByOwner(r,{programId:O}),c=new Map;for(let{account:e}of n.value){var l;let t=e.data.parsed;(null==t||null==(l=t.info)?void 0:l.mint)&&c.set(t.info.mint,{amount:t.info.tokenAmount.amount,uiAmount:t.info.tokenAmount.uiAmountString||"0"})}for(let e of t){let t=c.get(e.tokenAddress);s.set(e.tokenAddress,{balance:(null==t?void 0:t.uiAmount)||"0",balanceRaw:(null==t?void 0:t.amount)||"0",priceInEth:null})}}catch(e){for(let a of(console.error("[tokenData] Solana token fetch failed:",e),t))s.set(a.tokenAddress,{balance:"0",balanceRaw:"0",priceInEth:null})}return s}var B=a(43721);let W=["\uD83D\uDD25","\uD83D\uDC8E","\uD83D\uDE80","⚡","\uD83C\uDF19","\uD83C\uDF1F","\uD83D\uDCB0","\uD83C\uDFAF","\uD83D\uDD2E","\uD83C\uDF08"],R=["#ff4d00","#0047ff","#00c853","#ffab00","#9c27b0","#00bcd4","#e91e63","#607d8b"];function M(e){let t=new Date(e),a=Math.floor((new Date().getTime()-t.getTime())/6e4),s=Math.floor(a/60),l=Math.floor(s/24);return a<1?"just now":a<60?"".concat(a,"m ago"):s<24?"".concat(s,"h ago"):"".concat(l,"d ago")}function H(e){return"solana"===e||"solana-devnet"===e}function V(e,t){return!!e&&!!t&&(e.startsWith("0x")||t.startsWith("0x")?e.toLowerCase()===t.toLowerCase():e===t)}let P={send:"var(--color-warning, #ff4d00)",receive:"var(--color-success, #00c853)",swap:"var(--color-info, #0047ff)",contract:"var(--color-text-muted, #888)",manual:"var(--color-text-muted, #888)"},$=[{value:"all",label:"ALL"},{value:"send",label:"SEND"},{value:"receive",label:"RECEIVE"},{value:"swap",label:"SWAP"},{value:"contract",label:"CONTRACT"},{value:"manual",label:"MANUAL"}],U=e=>{let{config:t}=e,[a,b]=(0,l.useState)(""),[g,j]=(0,l.useState)(""),D=(null==t?void 0:t.walletAddress)||g||void 0,{getRpcUrl:E,getConfiguredChains:I,getChainConfig:T,isUnlocked:L}=(0,w.A)(),O=Object.keys(I()).map(e=>({value:e,label:e.toUpperCase()})),{subscribe:M,connected:P}=(0,A.h)(),{ethPrice:$,formatUsd:U}=(0,k.X)(),[K,X]=(0,l.useState)(null),[Q,Y]=(0,l.useState)(!!D),[Z,q]=(0,l.useState)(null),[ee,et]=(0,l.useState)(!1),[ea,es]=(0,l.useState)(!1),[el,eo]=(0,l.useState)(!1),[er,en]=(0,l.useState)("assets"),[ec,ei]=(0,l.useState)(""),[ed,ex]=(0,l.useState)(""),[eu,em]=(0,l.useState)(""),[ef,ep]=(0,l.useState)(""),[ev,eh]=(0,l.useState)(!1),[ey,eb]=(0,l.useState)([]),[eg,ej]=(0,l.useState)(!1),[eN,eA]=(0,l.useState)(""),[ek,ew]=(0,l.useState)(new Map),[eS,eC]=(0,l.useState)(!1),[eD,eE]=(0,l.useState)(!1),[eI,eT]=(0,l.useState)(null),[eL,eF]=(0,l.useState)({tokenAddress:"",symbol:"",name:"",chain:"base"}),[eO,ez]=(0,l.useState)(!1),[eB,eW]=(0,l.useState)(""),{balance:eR,loading:eM,currency:eH}=(0,C.A)(null==K?void 0:K.address,null==K?void 0:K.chain),[eV,eP]=(0,l.useState)([]),[e$,eU]=(0,l.useState)(!1),[eG,eJ]=(0,l.useState)(""),[e_,eK]=(0,l.useState)("all"),[eX,eQ]=(0,l.useState)(!1),[eY,eZ]=(0,l.useState)(0),eq=(0,l.useCallback)(async()=>{if(D&&L){Y(!0),q(null);try{let e=await Promise.race([S.FH.get(S.jI.Wallet,"/wallet/".concat(D)),new Promise((e,t)=>setTimeout(()=>t(Error("Server unreachable")),5e3))]);X(e),ei(e.name||""),ex(e.description||""),em(e.emoji||""),ep(e.color||""),eh(e.hidden||!1),eW(e.chain||"base"),eF(t=>({...t,chain:e.chain||"base"}))}catch(e){console.error("[WalletDetail] Failed to fetch wallet:",e),q(e instanceof Error?e.message:"Failed to fetch wallet")}finally{Y(!1)}}},[D,L]),e0=(0,l.useCallback)(()=>{(null==K?void 0:K.address)&&(navigator.clipboard.writeText(K.address),et(!0),setTimeout(()=>et(!1),2e3))},[null==K?void 0:K.address]);(0,l.useEffect)(()=>{eq()},[eq]);let e8=(0,l.useCallback)(async()=>{if(K&&eB){ej(!0);try{let e=await S.FH.get(S.jI.Wallet,"/wallet/".concat(K.address,"/assets"),{sortBy:"updatedAt",sortDir:"desc",limit:100,chain:eB});e.success&&eb(e.assets)}catch(e){console.error("[WalletDetail] Failed to fetch assets:",e)}finally{ej(!1)}}},[K,eB]),e1=(0,l.useCallback)(async e=>{if(0!==e.length&&K&&eB){eC(!0);try{let t=e.map(e=>({tokenAddress:e.tokenAddress,decimals:e.decimals,poolAddress:e.poolAddress,poolVersion:e.poolVersion})),a=E(eB),s=H(eB)?await z(K.address,t,a):await F(K.address,t,a);ew(s)}catch(e){console.error("[WalletDetail] Failed to fetch balances:",e)}finally{eC(!1)}}},[K,eB,E]),e5=(0,l.useCallback)(async function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(K&&eB){eU(!0);try{let t=e?0:eY,a={limit:50,offset:t,sortBy:"createdAt",sortDir:"desc",chain:eB};"all"!==e_&&(a.type=e_),eG&&(a.search=eG);let s=await S.FH.get(S.jI.Wallet,"/wallet/".concat(K.address,"/transactions"),a);s.success&&(e?(eP(s.transactions),eZ(s.transactions.length)):(eP(e=>[...e,...s.transactions]),eZ(t+s.transactions.length)),eQ(s.pagination.hasMore))}catch(e){console.error("[WalletDetail] Failed to fetch transactions:",e)}finally{eU(!1)}}},[K,eB,e_,eG,eY]);(0,l.useEffect)(()=>{K&&eB&&(e8(),e5(!0))},[eB]),(0,l.useEffect)(()=>{ey.length>0&&e1(ey)},[ey,e1]),(0,l.useEffect)(()=>{e5(!0)},[e_]),(0,l.useEffect)(()=>{if(!K)return;let e=M("asset:changed",e=>{let t=e.data;if(V(t.walletAddress,K.address)){if(t.removed)return void eb(e=>e.filter(e=>!V(e.tokenAddress,t.tokenAddress)));eb(e=>{let a=e.findIndex(e=>V(e.tokenAddress,t.tokenAddress));if(!(a>=0))return e8(),e;{var s,l,o,r,n;let c=[...e];return c[a]={...c[a],symbol:null!=(s=t.symbol)?s:c[a].symbol,name:null!=(l=t.name)?l:c[a].name,poolAddress:null!=(o=t.poolAddress)?o:c[a].poolAddress,poolVersion:null!=(r=t.poolVersion)?r:c[a].poolVersion,icon:null!=(n=t.icon)?n:c[a].icon,updatedAt:new Date().toISOString()},c.sort((e,t)=>new Date(t.updatedAt).getTime()-new Date(e.updatedAt).getTime())}})}}),t=M(B.Cw.BALANCE_UPDATED,e=>{let t=e.data;"token"===t.type&&eb(e=>{let a=!1,s=e.map(e=>{let s=t.balances.find(t=>V(t.walletAddress,K.address)&&t.tokenAddress&&V(t.tokenAddress,e.tokenAddress));return s?(a=!0,{...e,lastBalance:s.balance,lastBalanceAt:new Date().toISOString()}):e});return a?s:e})}),a=M("tx:created",e=>{var t,a,s,l,o;let r=e.data;if(!V(r.walletAddress,K.address))return;let n={id:r.id,walletAddress:r.walletAddress,txHash:null!=(t=r.txHash)?t:null,type:r.type,status:"confirmed",amount:null!=(a=r.amount)?a:null,tokenAddress:null!=(s=r.tokenAddress)?s:null,tokenAmount:null!=(l=r.tokenAmount)?l:null,from:null,to:null,description:null!=(o=r.description)?o:null,blockNumber:null,chain:K.chain||"base",createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),executedAt:new Date().toISOString()};eP(e=>[n,...e])});return()=>{e(),t(),a()}},[M,K,e8]);let e2=async()=>{if(K){eo(!0);try{await S.FH.post(S.jI.Wallet,"/wallet/rename",{address:K.address,name:ec||void 0,description:ed||void 0,emoji:eu||void 0,color:ef||void 0,hidden:ev}),X(e=>e?{...e,name:ec||void 0,description:ed||void 0,emoji:eu||void 0,color:ef||void 0,hidden:ev}:null),es(!1)}catch(e){console.error("[WalletDetail] Failed to save:",e)}finally{eo(!1)}}},e4=async()=>{if(eL.tokenAddress&&K){ez(!0);try{let e=await S.FH.post(S.jI.Wallet,"/wallet/".concat(K.address,"/asset"),{tokenAddress:eL.tokenAddress,symbol:eL.symbol||void 0,name:eL.name||void 0,chain:eL.chain});e.success?(eE(!1),eF({tokenAddress:"",symbol:"",name:"",chain:K.chain||"base"}),e8()):console.error("[WalletDetail] Failed to add asset:",e.error)}catch(e){console.error("[WalletDetail] Failed to add asset:",e)}finally{ez(!1)}}},e9=async e=>{if(K)try{let t=await S.FH.delete(S.jI.Wallet,"/wallet/".concat(K.address,"/asset/").concat(e));t.success||console.error("[WalletDetail] Failed to remove asset:",t.error)}catch(e){console.error("[WalletDetail] Failed to remove asset:",e)}},e3=ey.filter(e=>{if(eN){var t,a;let s=eN.toLowerCase();return(null==(t=e.symbol)?void 0:t.toLowerCase().includes(s))||(null==(a=e.name)?void 0:a.toLowerCase().includes(s))||e.tokenAddress.toLowerCase().includes(s)}return!0});return L?D?Q?(0,s.jsxs)("div",{className:"py-8 text-center",children:[(0,s.jsx)(n.A,{size:24,className:"mx-auto mb-3 animate-spin",style:{color:"var(--color-text-muted, #888)"}}),(0,s.jsx)("div",{className:"font-mono text-[10px] tracking-wider",style:{color:"var(--color-text-muted, #888)"},children:"LOADING WALLET..."})]}):Z||!K?(0,s.jsxs)("div",{className:"py-8 text-center",children:[(0,s.jsx)("div",{className:"font-mono text-[10px] tracking-wider",style:{color:"var(--color-warning, #ff4d00)"},children:Z||"WALLET NOT FOUND"}),(0,s.jsx)("div",{className:"font-mono text-[8px] mt-1",style:{color:"var(--color-text-muted, #888)"},children:D})]}):(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsxs)("div",{className:"text-center py-2",children:[(0,s.jsx)("div",{className:"font-mono text-2xl font-bold",style:{color:"var(--color-text, #0a0a0a)"},children:eM?(0,s.jsx)(n.A,{size:20,className:"inline animate-spin",style:{color:"var(--color-text-muted, #888)"}}):(0,s.jsxs)(s.Fragment,{children:[eR||"0"," ",(0,s.jsx)("span",{className:"text-sm",children:eH})]})}),$&&eR&&!eM&&!H(K.chain)&&(0,s.jsx)("div",{className:"font-mono text-sm",style:{color:"var(--color-text-muted, #888)"},children:U(eR)})]}),(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[K.emoji&&(0,s.jsx)("span",{className:"text-xs",children:K.emoji}),(0,s.jsx)("span",{className:"font-mono text-[9px] font-bold truncate",style:{color:"var(--color-text, #0a0a0a)"},children:K.name||"HOT WALLET"}),K.color&&(0,s.jsx)("div",{className:"w-2 h-2 rounded-full shrink-0",style:{backgroundColor:K.color}}),(0,s.jsx)("span",{className:"font-mono text-[8px] uppercase px-1 py-0.5",style:{background:"var(--color-warning, #ff4d00)",color:"var(--color-surface, #fff)"},children:K.tier}),(0,s.jsxs)("div",{className:"ml-auto flex items-center gap-1",children:[P?(0,s.jsx)(c.A,{size:9,style:{color:"var(--color-success, #00c853)"}}):(0,s.jsx)(i.A,{size:9,style:{color:"var(--color-text-muted, #888)"}}),(0,s.jsx)("button",{onClick:()=>es(!0),className:"p-1 transition-colors",style:{color:"var(--color-text-muted, #888)"},children:(0,s.jsx)(d.A,{size:10})})]})]}),(0,s.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,s.jsx)("code",{className:"flex-1 font-mono text-[9px] truncate select-all",style:{color:"var(--color-text-muted, #888)"},children:K.address}),(0,s.jsx)("button",{onClick:e0,className:"p-1 transition-colors shrink-0",style:{background:ee?"var(--color-success, #00c853)":"var(--color-background-alt, #f5f5f5)",color:ee?"var(--color-surface, #fff)":"var(--color-text-muted, #888)"},children:(0,s.jsx)(x.A,{size:10})})]}),K.hidden&&!ea&&(0,s.jsxs)("div",{className:"flex items-center gap-1.5 px-2 py-1",style:{background:"color-mix(in srgb, var(--color-warning, #ff4d00) 10%, transparent)",border:"1px solid color-mix(in srgb, var(--color-warning, #ff4d00) 30%, transparent)"},children:[(0,s.jsx)(u.A,{size:9,style:{color:"var(--color-warning, #ff4d00)"}}),(0,s.jsx)("span",{className:"font-mono text-[8px]",style:{color:"var(--color-warning, #ff4d00)"},children:"HIDDEN - Excluded from totals"})]}),K.description&&!ea&&(0,s.jsx)("div",{className:"font-mono text-[9px] leading-relaxed",style:{color:"var(--color-text-muted, #888)"},children:K.description}),ea?(0,s.jsxs)("div",{className:"space-y-2 pt-2",style:{borderTop:"1px solid var(--color-border, #e5e5e5)"},children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{className:"font-mono text-[7px] tracking-widest block mb-0.5",style:{color:"var(--color-text-muted, #888)"},children:"NAME"}),(0,s.jsx)("input",{type:"text",value:ec,onChange:e=>ei(e.target.value),placeholder:"Wallet name...",className:"w-full px-2 py-1.5 font-mono text-[10px] focus:outline-none",style:{background:"var(--color-surface, #fff)",border:"1px solid var(--color-border, #e5e5e5)",color:"var(--color-text, #0a0a0a)"}})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{className:"font-mono text-[7px] tracking-widest block mb-0.5",style:{color:"var(--color-text-muted, #888)"},children:"DESCRIPTION"}),(0,s.jsx)("textarea",{value:ed,onChange:e=>ex(e.target.value),placeholder:"Add a description...",rows:2,className:"w-full px-2 py-1.5 font-mono text-[10px] focus:outline-none resize-none",style:{background:"var(--color-surface, #fff)",border:"1px solid var(--color-border, #e5e5e5)",color:"var(--color-text, #0a0a0a)"}})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{className:"font-mono text-[7px] tracking-widest block mb-0.5",style:{color:"var(--color-text-muted, #888)"},children:"EMOJI"}),(0,s.jsxs)("div",{className:"flex flex-wrap gap-0.5",children:[(0,s.jsx)("button",{onClick:()=>em(""),className:"w-6 h-6 flex items-center justify-center transition-colors",style:{border:eu?"1px solid var(--color-border, #e5e5e5)":"1px solid var(--color-text, #0a0a0a)",background:eu?"transparent":"var(--color-background-alt, #f5f5f5)"},children:(0,s.jsx)(m.A,{size:10,style:{color:"var(--color-text-muted, #888)"}})}),W.map(e=>(0,s.jsx)("button",{onClick:()=>em(e),className:"w-6 h-6 flex items-center justify-center text-xs transition-colors",style:{border:eu===e?"1px solid var(--color-text, #0a0a0a)":"1px solid var(--color-border, #e5e5e5)",background:eu===e?"var(--color-background-alt, #f5f5f5)":"transparent"},children:e},e))]})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{className:"font-mono text-[7px] tracking-widest block mb-0.5",style:{color:"var(--color-text-muted, #888)"},children:"COLOR"}),(0,s.jsxs)("div",{className:"flex flex-wrap gap-0.5",children:[(0,s.jsx)("button",{onClick:()=>ep(""),className:"w-6 h-6 flex items-center justify-center transition-colors",style:{border:ef?"1px solid var(--color-border, #e5e5e5)":"1px solid var(--color-text, #0a0a0a)"},children:(0,s.jsx)("div",{className:"w-3 h-3 rounded-full",style:{background:"var(--color-border, #e5e5e5)"}})}),R.map(e=>(0,s.jsx)("button",{onClick:()=>ep(e),className:"w-6 h-6 flex items-center justify-center transition-colors",style:{border:ef===e?"1px solid var(--color-text, #0a0a0a)":"1px solid var(--color-border, #e5e5e5)"},children:(0,s.jsx)("div",{className:"w-3 h-3 rounded-full",style:{backgroundColor:e}})},e))]})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{className:"font-mono text-[7px] tracking-widest block mb-0.5",style:{color:"var(--color-text-muted, #888)"},children:"VISIBILITY"}),(0,s.jsxs)("button",{onClick:()=>eh(!ev),className:"flex items-center gap-1.5 px-2 py-1.5 w-full transition-colors",style:{border:ev?"1px solid var(--color-warning, #ff4d00)":"1px solid var(--color-border, #e5e5e5)",background:ev?"color-mix(in srgb, var(--color-warning, #ff4d00) 5%, transparent)":"transparent",color:ev?"var(--color-warning, #ff4d00)":"var(--color-text, #0a0a0a)"},children:[ev?(0,s.jsx)(u.A,{size:10}):(0,s.jsx)(f.A,{size:10}),(0,s.jsx)("span",{className:"font-mono text-[9px]",children:ev?"HIDDEN":"VISIBLE"})]})]}),(0,s.jsxs)("div",{className:"flex gap-1.5 pt-1",children:[(0,s.jsx)(N.$n,{variant:"secondary",onClick:()=>{K&&(ei(K.name||""),ex(K.description||""),em(K.emoji||""),ep(K.color||""),eh(K.hidden||!1),es(!1))},className:"flex-1",children:"CANCEL"}),(0,s.jsx)(N.$n,{variant:"primary",onClick:e2,loading:el,icon:(0,s.jsx)(p.A,{size:9}),className:"flex-1",children:"SAVE"})]})]}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsxs)("div",{className:"flex flex-1 rounded-sm overflow-hidden",style:{background:"var(--color-background-alt, #f5f5f5)",border:"1px solid var(--color-border, #e5e5e5)"},children:[(0,s.jsx)(G,{active:"assets"===er,onClick:()=>en("assets"),icon:(0,s.jsx)(v.A,{size:12}),label:"ASSETS",badge:ey.length>0?ey.length:void 0}),(0,s.jsx)(G,{active:"transactions"===er,onClick:()=>en("transactions"),icon:(0,s.jsx)(h.A,{size:12}),label:"TRANSACTIONS",badge:eV.length>0?eV.length:void 0})]}),(0,s.jsx)(N.$n,{variant:"secondary",size:"sm",onClick:"assets"===er?()=>{e8()}:()=>{e5(!0)},disabled:"assets"===er?eg||eS:e$,icon:(0,s.jsx)(y.A,{size:12,className:("assets"===er?eg||eS:e$)?"animate-spin":""})})]}),"assets"===er?(0,s.jsx)(J,{assets:e3,loading:eg||eS,search:eN,onSearchChange:eA,tokenDataMap:ek,ethPrice:$,showAddAsset:eD,addAssetAnchor:eI,onShowAddAsset:(e,t)=>{eE(e),eT(t||null)},addAssetForm:eL,onAddAssetFormChange:eF,onAddAsset:e4,addingAsset:eO,chainOptions:O,selectedChain:eB,onChainChange:e=>{eW(e),eF(t=>({...t,chain:e}))},onRemoveAsset:e9,nativeCurrency:H(eB)?"SOL":"ETH"}):(0,s.jsx)(_,{transactions:eV,loading:e$,search:eG,onSearchChange:eJ,typeFilter:e_,onTypeFilterChange:eK,hasMore:eX,onLoadMore:()=>e5(!1),nativeCurrency:H(eB)?"SOL":"ETH",explorerUrl:T(eB).explorer})]})]}):(0,s.jsxs)("div",{className:"space-y-3 py-4 px-1",children:[(0,s.jsxs)("div",{className:"text-center",children:[(0,s.jsx)(r.A,{size:20,className:"mx-auto mb-2",style:{color:"var(--color-text-muted, #888)"}}),(0,s.jsx)("div",{className:"font-mono text-[10px] tracking-wider",style:{color:"var(--color-text-muted, #888)"},children:"ENTER WALLET ADDRESS"})]}),(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsx)(N.ks,{value:a,onChange:e=>b(e.target.value),placeholder:"0x... or base58 address",compact:!0,onKeyDown:e=>{"Enter"===e.key&&a.trim()&&(j(a.trim()),Y(!0))}}),(0,s.jsx)(N.$n,{variant:"primary",onClick:()=>{a.trim()&&(j(a.trim()),Y(!0))},disabled:!a.trim(),className:"w-full",size:"sm",children:"LOAD WALLET"})]})]}):(0,s.jsxs)("div",{className:"py-8 text-center",children:[(0,s.jsx)(o.A,{size:24,className:"mx-auto mb-3",style:{color:"var(--color-text-muted, #888)"}}),(0,s.jsx)("div",{className:"font-mono text-[10px] tracking-wider",style:{color:"var(--color-text-muted, #888)"},children:"AGENT LOCKED"})]})};function G(e){let{active:t,onClick:a,icon:l,label:o,badge:r}=e;return(0,s.jsxs)("button",{onClick:a,className:"flex-1 py-2 px-3 font-mono text-[9px] tracking-widest transition-all flex items-center justify-center gap-1.5",style:{background:t?"var(--color-surface, #fff)":"transparent",color:t?"var(--color-text, #0a0a0a)":"var(--color-text-muted, #888)",boxShadow:t?"0 1px 3px rgba(0,0,0,0.1)":"none"},children:[l,o,void 0!==r&&(0,s.jsx)("span",{className:"ml-1 px-1.5 py-0.5 rounded-sm text-[8px] font-bold",style:{background:"var(--color-info, #0047ff)",color:"var(--color-surface, #fff)"},children:r})]})}function J(e){let{assets:t,loading:a,search:l,onSearchChange:o,tokenDataMap:c,ethPrice:i,showAddAsset:d,addAssetAnchor:x,onShowAddAsset:u,addAssetForm:m,onAddAssetFormChange:f,onAddAsset:p,addingAsset:h,chainOptions:y,selectedChain:j,onChainChange:A,onRemoveAsset:k,nativeCurrency:w}=e;return(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("div",{className:"w-28",children:(0,s.jsx)(N.XS,{value:j,onChange:A,chains:y.map(e=>e.value),size:"sm"})}),(0,s.jsx)("div",{className:"flex-1",children:(0,s.jsx)(N.ks,{value:l,onChange:e=>o(e.target.value),placeholder:"Search tokens...",leftElement:(0,s.jsx)(r.A,{size:10}),compact:!0})}),(0,s.jsx)(N.$n,{variant:"primary",size:"sm",onClick:e=>u(!0,e.currentTarget),icon:(0,s.jsx)(b.A,{size:10})})]}),(0,s.jsx)(N.AM,{isOpen:d,onClose:()=>u(!1),anchorEl:x,title:"ADD ASSET",anchor:"right",children:(0,s.jsxs)("div",{className:"space-y-2 w-56",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{className:"font-mono text-[8px] tracking-widest block mb-1",style:{color:"var(--color-text-muted, #888)"},children:"TOKEN ADDRESS *"}),(0,s.jsx)("input",{type:"text",value:m.tokenAddress,onChange:e=>f({...m,tokenAddress:e.target.value}),placeholder:"0x...",className:"w-full px-2 py-1.5 font-mono text-[9px] focus:outline-none",style:{background:"var(--color-surface, #fff)",border:"1px solid var(--color-border, #e5e5e5)",color:"var(--color-text, #0a0a0a)"}})]}),(0,s.jsxs)("div",{className:"flex gap-2",children:[(0,s.jsxs)("div",{className:"flex-1",children:[(0,s.jsx)("label",{className:"font-mono text-[8px] tracking-widest block mb-1",style:{color:"var(--color-text-muted, #888)"},children:"SYMBOL"}),(0,s.jsx)("input",{type:"text",value:m.symbol,onChange:e=>f({...m,symbol:e.target.value}),placeholder:"TKN",className:"w-full px-2 py-1.5 font-mono text-[9px] focus:outline-none",style:{background:"var(--color-surface, #fff)",border:"1px solid var(--color-border, #e5e5e5)",color:"var(--color-text, #0a0a0a)"}})]}),(0,s.jsx)("div",{className:"w-28",children:(0,s.jsx)(N.XS,{label:"CHAIN",value:m.chain,onChange:e=>f({...m,chain:e}),chains:y.map(e=>e.value),size:"sm"})})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{className:"font-mono text-[8px] tracking-widest block mb-1",style:{color:"var(--color-text-muted, #888)"},children:"NAME"}),(0,s.jsx)("input",{type:"text",value:m.name,onChange:e=>f({...m,name:e.target.value}),placeholder:"Token Name",className:"w-full px-2 py-1.5 font-mono text-[9px] focus:outline-none",style:{background:"var(--color-surface, #fff)",border:"1px solid var(--color-border, #e5e5e5)",color:"var(--color-text, #0a0a0a)"}})]}),(0,s.jsx)(N.$n,{onClick:p,disabled:!m.tokenAddress||h,loading:h,className:"w-full",size:"sm",children:h?"ADDING...":"ADD ASSET"})]})}),a&&0===t.length?(0,s.jsxs)("div",{className:"py-6 text-center",children:[(0,s.jsx)(n.A,{size:20,className:"mx-auto mb-2 animate-spin",style:{color:"var(--color-text-muted, #888)"}}),(0,s.jsx)("div",{className:"font-mono text-[9px]",style:{color:"var(--color-text-muted, #888)"},children:"LOADING ASSETS..."})]}):0===t.length?(0,s.jsxs)("div",{className:"py-6 text-center",children:[(0,s.jsx)(v.A,{size:24,className:"mx-auto mb-2",style:{color:"var(--color-text-muted, #888)"}}),(0,s.jsx)("div",{className:"font-mono text-[9px]",style:{color:"var(--color-text-muted, #888)"},children:"NO TRACKED ASSETS"}),(0,s.jsx)("div",{className:"font-mono text-[8px] mt-1",style:{color:"var(--color-text-faint, #aaa)"},children:"Swap tokens to auto-track them"})]}):(0,s.jsx)("div",{className:"space-y-1 max-h-48 overflow-y-auto",children:t.map(e=>{var t,a,l,o;let r=H(j)?e.tokenAddress:e.tokenAddress.toLowerCase(),n=c.get(r),d=null!=(l=null!=(a=null==n?void 0:n.balance)?a:e.lastBalance)?l:"0",x=null!=(o=null==n?void 0:n.priceInEth)?o:null,u=function(e,t,a){if(null===t||null===a)return null;let s=parseFloat(e);return isNaN(s)||0===s?null:s*t*a}(d,x,i),m=e.lastBalanceAt?Date.now()-new Date(e.lastBalanceAt).getTime():null;return(0,s.jsxs)("div",{className:"p-2 rounded-sm group",style:{background:"var(--color-surface, #fff)",border:"1px solid var(--color-border, #e5e5e5)"},children:[(0,s.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[(0,s.jsx)("div",{className:"w-6 h-6 rounded-full flex items-center justify-center shrink-0 text-[10px] font-bold",style:{background:"var(--color-background-alt, #f5f5f5)",color:"var(--color-text-muted, #888)"},children:(null==(t=e.symbol)?void 0:t.charAt(0))||"?"}),(0,s.jsxs)("div",{className:"min-w-0",children:[(0,s.jsx)("div",{className:"font-mono text-[10px] font-bold truncate",style:{color:"var(--color-text, #0a0a0a)"},children:e.symbol||function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:6;return"".concat(e.slice(0,t+2),"...").concat(e.slice(-t))}(e.tokenAddress,4)}),e.name&&(0,s.jsx)("div",{className:"font-mono text-[8px] truncate",style:{color:"var(--color-text-muted, #888)"},children:e.name})]})]}),(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsxs)("div",{className:"text-right shrink-0",children:[(0,s.jsxs)("div",{className:"flex items-center gap-1 justify-end",children:[(0,s.jsx)("div",{className:"w-1 h-1 rounded-full shrink-0",style:{background:null===m?"var(--color-text-faint, #ccc)":m<3e4?"var(--color-success, #00c853)":m<3e5?"var(--color-info, #0047ff)":"var(--color-warning, #ff4d00)"},title:e.lastBalanceAt?"Updated ".concat(M(e.lastBalanceAt)):"No cached balance"}),(0,s.jsx)("span",{className:"font-mono text-[10px] font-bold",style:{color:"var(--color-text, #0a0a0a)"},children:parseFloat(d).toFixed(4)})]}),null!==u&&(0,s.jsx)("div",{className:"font-mono text-[8px]",style:{color:"var(--color-text-muted, #888)"},children:null===u?"":u<.01?"<$0.01":u<1||u<1e3?"$".concat(u.toFixed(2)):u<1e4?"$".concat(u.toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})):"$".concat(u.toLocaleString("en-US",{minimumFractionDigits:0,maximumFractionDigits:0}))})]}),(0,s.jsx)("button",{onClick:()=>k(e.id),className:"p-1 opacity-0 group-hover:opacity-100 transition-opacity",style:{color:"var(--color-warning, #ff4d00)"},title:"Remove asset",children:(0,s.jsx)(g.A,{size:10})})]})]}),e.poolVersion&&(0,s.jsxs)("div",{className:"mt-1.5 flex items-center gap-1",children:[(0,s.jsx)("span",{className:"font-mono text-[7px] px-1 py-0.5 rounded-sm uppercase",style:{background:"var(--color-background-alt, #f5f5f5)",color:"var(--color-text-muted, #888)"},children:e.poolVersion}),null!==x&&(0,s.jsxs)("span",{className:"font-mono text-[7px]",style:{color:"var(--color-text-muted, #888)"},children:[x.toFixed(8)," ",w]})]})]},e.id)})})]})}function _(e){let{transactions:t,loading:a,search:l,onSearchChange:o,typeFilter:c,onTypeFilterChange:i,hasMore:d,onLoadMore:x,nativeCurrency:u,explorerUrl:m}=e,f=l?t.filter(e=>{var t,a;return(null==(t=e.description)?void 0:t.toLowerCase().includes(l.toLowerCase()))||(null==(a=e.txHash)?void 0:a.toLowerCase().includes(l.toLowerCase()))}):t;return(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsxs)("div",{className:"flex gap-2",children:[(0,s.jsx)("div",{className:"w-24",children:(0,s.jsx)(N.UM,{options:$,value:c,onChange:i,compact:!0})}),(0,s.jsx)("div",{className:"flex-1",children:(0,s.jsx)(N.ks,{value:l,onChange:e=>o(e.target.value),placeholder:"Search tx...",leftElement:(0,s.jsx)(r.A,{size:10}),compact:!0})})]}),a&&0===t.length?(0,s.jsxs)("div",{className:"py-6 text-center",children:[(0,s.jsx)(n.A,{size:20,className:"mx-auto mb-2 animate-spin",style:{color:"var(--color-text-muted, #888)"}}),(0,s.jsx)("div",{className:"font-mono text-[9px]",style:{color:"var(--color-text-muted, #888)"},children:"LOADING TRANSACTIONS..."})]}):0===f.length?(0,s.jsxs)("div",{className:"py-6 text-center",children:[(0,s.jsx)(h.A,{size:24,className:"mx-auto mb-2",style:{color:"var(--color-text-muted, #888)"}}),(0,s.jsx)("div",{className:"font-mono text-[9px]",style:{color:"var(--color-text-muted, #888)"},children:"NO TRANSACTIONS"}),(0,s.jsx)("div",{className:"font-mono text-[8px] mt-1",style:{color:"var(--color-text-faint, #aaa)"},children:l?"Try a different search":"Transactions will appear here"})]}):(0,s.jsxs)("div",{className:"space-y-1 max-h-48 overflow-y-auto",children:[f.map(e=>{let t=P[e.type]||"var(--color-text-muted, #888)";return(0,s.jsx)("div",{className:"p-2 rounded-sm",style:{background:"var(--color-surface, #fff)",border:"1px solid var(--color-border, #e5e5e5)"},children:(0,s.jsxs)("div",{className:"flex items-start justify-between gap-2",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[(0,s.jsx)("div",{className:"w-1.5 h-1.5 rounded-full shrink-0",style:{background:t}}),(0,s.jsxs)("div",{className:"min-w-0",children:[(0,s.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,s.jsx)("span",{className:"font-mono text-[8px] font-bold uppercase",style:{color:t},children:e.type}),e.amount&&(0,s.jsxs)("span",{className:"font-mono text-[9px] font-bold",style:{color:"var(--color-text, #0a0a0a)"},children:[parseFloat(e.amount).toFixed(4)," ",u]}),e.tokenAmount&&(0,s.jsx)("span",{className:"font-mono text-[9px] font-bold",style:{color:"var(--color-text, #0a0a0a)"},children:parseFloat(e.tokenAmount).toFixed(4)})]}),e.description&&(0,s.jsx)("div",{className:"font-mono text-[8px] truncate max-w-[180px]",style:{color:"var(--color-text-muted, #888)"},children:e.description})]})]}),(0,s.jsxs)("div",{className:"flex items-center gap-1 shrink-0",children:[(0,s.jsx)("span",{className:"font-mono text-[7px]",style:{color:"var(--color-text-faint, #aaa)"},children:M(e.createdAt)}),e.txHash&&(0,s.jsx)("a",{href:"".concat(m,"/tx/").concat(e.txHash),target:"_blank",rel:"noopener noreferrer",className:"p-0.5 transition-colors",style:{color:"var(--color-text-muted, #888)"},children:(0,s.jsx)(j.A,{size:9})})]})]})},e.id)}),d&&!l&&(0,s.jsx)("button",{onClick:x,disabled:a,className:"w-full py-2 font-mono text-[8px] transition-colors",style:{color:"var(--color-text-muted, #888)",background:"var(--color-background-alt, #f5f5f5)"},children:a?"LOADING...":"LOAD MORE"})]})]})}let K=U},47790:()=>{},93444:(e,t,a)=>{"use strict";a.d(t,{A:()=>i});var s=a(12115),l=a(78561),o=a(99794),r=a(25223),n=a(54901);function c(e){return"solana"===e||"solana-devnet"===e}function i(e,t){let{getRpcUrl:a,getConfiguredChains:i}=(0,n.A)(),[d,x]=(0,s.useState)(null),[u,m]=(0,s.useState)(null),[f,p]=(0,s.useState)(!1),[v,h]=(0,s.useState)(null),y=(0,s.useRef)(""),b=(0,s.useRef)(""),g=Object.keys(i())[0]||"base",j=t||g,N=c(j),A=a(j),k=(0,s.useCallback)(async()=>{if(!e){x(null),m(null);return}p(!0),h(null);try{let t=a(j);if(c(j)){let a=new r.Ng(t,"confirmed"),s=new r.J3(e),l=await a.getBalance(s);m(BigInt(l)),x((l/r.Sr).toString())}else{let a=new l.FR(t),s=await a.getBalance(e);m(s),x(o.ck(s))}}catch(e){console.error("[useBalance] Failed to fetch balance:",e),h(e instanceof Error?e.message:"Failed to fetch balance"),x(null),m(null)}finally{p(!1)}},[e,j,a]);return(0,s.useEffect)(()=>{(e!==y.current||A!==b.current)&&(y.current=e||"",b.current=A,k())},[e,A,k]),{balance:d,balanceWei:u,loading:f,error:v,refetch:k,currency:N?"SOL":"ETH",decimals:N?9:18}}}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3609],{52056:(e,t,l)=>{l.d(t,{A:()=>s});let s=(0,l(71847).A)("TriangleAlert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]])},63609:(e,t,l)=>{l.r(t),l.d(t,{default:()=>r});var s=l(95155);l(12115);var a=l(52056);function r(e){let{config:t}=e,l=null==t?void 0:t.url,r=(null==t?void 0:t.title)||"Embedded Content";if(!l)return(0,s.jsxs)("div",{className:"flex flex-col items-center justify-center h-full min-h-[200px] text-[var(--color-text-muted,#6b7280)]",children:[(0,s.jsx)(a.A,{size:24,className:"mb-2"}),(0,s.jsx)("span",{className:"font-mono text-xs",children:"NO URL CONFIGURED"})]});try{let e=new URL(l);if(!["http:","https:"].includes(e.protocol))return(0,s.jsxs)("div",{className:"flex flex-col items-center justify-center h-full min-h-[200px] text-[var(--color-error,#ff4d00)]",children:[(0,s.jsx)(a.A,{size:24,className:"mb-2"}),(0,s.jsx)("span",{className:"font-mono text-xs",children:"BLOCKED URL SCHEME"}),(0,s.jsx)("span",{className:"font-mono text-[10px] text-[var(--color-text-muted,#6b7280)] mt-1",children:"Only http/https URLs are allowed"})]})}catch(e){return(0,s.jsxs)("div",{className:"flex flex-col items-center justify-center h-full min-h-[200px] text-[var(--color-error,#ff4d00)]",children:[(0,s.jsx)(a.A,{size:24,className:"mb-2"}),(0,s.jsx)("span",{className:"font-mono text-xs",children:"INVALID URL"}),(0,s.jsx)("span",{className:"font-mono text-[10px] text-[var(--color-text-muted,#6b7280)] mt-1 max-w-full truncate px-4",children:l})]})}return(0,s.jsx)("iframe",{src:l,title:r,sandbox:"allow-scripts allow-forms",className:"w-full h-full border-0",style:{minHeight:"200px"},loading:"lazy"})}}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3667],{53667:(e,a,r)=>{r.d(a,{$n:()=>l,XS:()=>A,Rw:()=>g,_s:()=>x,UM:()=>d,O6:()=>_,aF:()=>u,AM:()=>h,ks:()=>c,lM:()=>L,lX:()=>F});var t=r(95155),o=r(12115),s=r(35299);let n=()=>(0,t.jsx)("span",{className:"absolute right-0 top-0 bottom-0 w-[6px] pointer-events-none opacity-25","aria-hidden":"true",style:{backgroundImage:"repeating-linear-gradient(to bottom, var(--color-surface,#ffffff) 0px, var(--color-surface,#ffffff) 2px, transparent 2px, transparent 3px, var(--color-surface,#ffffff) 3px, var(--color-surface,#ffffff) 4px, transparent 4px, transparent 7px)"}}),l=e=>{let{variant:a="primary",size:r="md",loading:o=!1,icon:l,children:c,disabled:i,className:d="",...f}=e,v="primary"===a,x="sm"===r?"var(--font-size-xs)":"md"===r?"var(--font-size-sm)":"var(--font-size-md)";return(0,t.jsxs)("button",{className:"".concat("font-mono tracking-widest flex items-center justify-center gap-[var(--space-1)] transition-all disabled:opacity-50 disabled:cursor-not-allowed"," ").concat({primary:"relative clip-specimen-sm bg-[var(--color-text,#0a0a0a)] text-[var(--color-surface,#ffffff)] border border-[var(--color-text,#0a0a0a)] shadow-mech hover:shadow-mech-hover active:shadow-mech-active hover:bg-[var(--color-accent,#ccff00)] hover:text-[var(--color-accent-foreground,#0a0a0a)] hover:border-[var(--color-accent,#ccff00)] hover:-translate-y-[1px] hover:-translate-x-[1px] active:translate-y-0 active:translate-x-0",secondary:"bg-[var(--color-surface,#ffffff)] border border-[var(--color-border,#d4d4d8)] text-[var(--color-text-muted,#6b7280)] hover:border-[var(--color-text,#0a0a0a)] hover:text-[var(--color-text,#0a0a0a)] hover:bg-[var(--color-background-alt,#f4f4f5)]",danger:"bg-[var(--color-surface,#ffffff)] border-2 border-[var(--color-warning,#ff4d00)] text-[var(--color-warning,#ff4d00)] hover:bg-[var(--color-warning,#ff4d00)] hover:text-white",ghost:"bg-transparent text-[var(--color-text-muted,#6b7280)] hover:text-[var(--color-text,#0a0a0a)] hover:bg-[var(--color-background-alt,#f4f4f5)]"}[a]," ").concat({sm:"h-[var(--control-height-sm)] px-[var(--space-2)] text-[length:var(--font-size-xs)]",md:"h-[var(--control-height-md)] px-[var(--space-3)] text-[length:var(--font-size-sm)]",lg:"h-[var(--control-height-lg)] px-[var(--space-4)] text-[length:var(--font-size-md)]"}[r]," ").concat(d),disabled:i||o,...f,children:[o?(0,t.jsxs)(t.Fragment,{children:[v&&(0,t.jsx)("span",{className:"absolute inset-0 pointer-events-none animate-ticker bg-hazard-stripes opacity-40","aria-hidden":"true"}),(0,t.jsx)(s.A,{className:"animate-spin relative z-[1]",style:{width:x,height:x}})]}):l||null,(0,t.jsx)("span",{className:"relative z-[1]",children:c}),v&&!o&&(0,t.jsx)(n,{})]})},c=e=>{let{label:a,error:r,errorMessage:o,hint:s,leftElement:n,rightElement:l,compact:c=!1,inputRef:i,className:d="",...f}=e,v=a&&a.length>0,x=r&&(o||!o);return(0,t.jsxs)("div",{className:"flex flex-col gap-[var(--space-1)] w-full group ".concat(d),children:[(v||x)&&(0,t.jsxs)("div",{className:"flex justify-between items-end px-[var(--space-1)]",children:[v&&(0,t.jsx)("label",{className:"font-mono text-[length:var(--font-size-xs)] font-bold uppercase tracking-widest text-[var(--color-text-muted,#6b7280)] group-focus-within:text-[var(--color-text,#0a0a0a)] transition-colors",children:a}),r&&o&&(0,t.jsx)("span",{className:"font-mono text-[length:var(--font-size-xs)] text-[var(--color-danger,#ef4444)] uppercase",children:o}),r&&!o&&(0,t.jsx)("span",{className:"font-mono text-[length:var(--font-size-xs)] text-[var(--color-warning,#ff4d00)] font-bold",children:"ERR_NULL"})]}),(0,t.jsxs)("div",{className:"relative flex",children:[n&&(0,t.jsx)("div",{className:"absolute left-0 top-0 h-full flex items-center pl-[var(--space-2)] pointer-events-none text-[var(--color-text-muted,#6b7280)]",children:n}),(0,t.jsx)("input",{ref:i,className:"\n w-full ".concat(c?"h-[var(--control-height-sm)] text-[length:var(--font-size-xs)]":"h-[calc(var(--control-height-lg)+var(--space-2))] text-[length:var(--font-size-md)]"," bg-[var(--color-background-alt,#f4f4f5)] border outline-none font-mono text-[var(--color-text,#0a0a0a)] placeholder-[var(--color-text-muted,#6b7280)]\n transition-all duration-200\n border-[var(--color-border,#d4d4d8)]\n hover:border-[var(--color-border-muted,#a1a1aa)] hover:bg-[var(--color-surface,#ffffff)]\n focus:border-[var(--color-border-focus,#0a0a0a)] focus:bg-[var(--color-surface,#ffffff)] focus:shadow-[2px_2px_0_rgba(0,0,0,0.08)]\n ").concat(r?"border-[var(--color-danger,#ef4444)]/50 focus:border-[var(--color-danger,#ef4444)] bg-[var(--color-danger,#ef4444)]/5":"","\n ").concat(n?"pl-[calc(var(--space-4)+var(--space-3))]":"px-[var(--space-3)]","\n ").concat(l?"pr-[calc(var(--space-4)+var(--space-4))]":"pr-[var(--space-3)]","\n "),...f}),l&&(0,t.jsx)("div",{className:"absolute right-0 top-0 h-full flex items-center pr-[var(--space-2)]",children:l}),(0,t.jsx)("div",{className:"absolute top-0 right-0 w-1.5 h-1.5 border-t border-r transition-opacity ".concat(r?"border-[var(--color-danger,#ef4444)] opacity-100":"border-[var(--color-border-focus,#0a0a0a)] opacity-0 group-focus-within:opacity-100")}),(0,t.jsx)("div",{className:"absolute bottom-0 left-0 w-1.5 h-1.5 border-b border-l transition-opacity ".concat(r?"border-[var(--color-danger,#ef4444)] opacity-100":"border-[var(--color-border-focus,#0a0a0a)] opacity-0 group-focus-within:opacity-100")})]}),s&&(0,t.jsx)("span",{className:"font-mono text-[length:var(--font-size-xs)] text-[var(--color-text-muted,#6b7280)] px-[var(--space-1)]",children:s})]})};var i=r(24033);let d=e=>{let{options:a,value:r,onChange:s,label:n,compact:l=!1,disabled:c=!1,ariaLabel:d,searchable:f=!1,searchPlaceholder:v="Search...",emptyMessage:x="No options found",menuPosition:u="auto"}=e,[m,p]=(0,o.useState)(!1),[h,b]=(0,o.useState)(!1),[g,w]=(0,o.useState)(192),[j,y]=(0,o.useState)(""),N=(0,o.useRef)(null),k=(0,o.useRef)(null),z=a.find(e=>e.value===r),C=(0,o.useMemo)(()=>{if(!f)return a;let e=j.trim().toLowerCase();return e?a.filter(a=>a.label.toLowerCase().includes(e)||a.value.toLowerCase().includes(e)):a},[a,j,f]);return(0,o.useEffect)(()=>{if(!m)return void y("");f&&requestAnimationFrame(()=>{var e;null==(e=k.current)||e.focus()})},[m,f]),(0,t.jsxs)("div",{className:"relative w-full group ".concat(m?"z-50":"z-20"),children:[n&&(0,t.jsx)("label",{className:"block text-[length:var(--font-size-xs)] font-mono font-bold uppercase tracking-widest text-[var(--color-text-muted,#6b7280)] mb-[var(--space-1)] px-[var(--space-1)] pointer-events-none",children:n}),(0,t.jsxs)("button",{ref:N,type:"button","aria-label":d,disabled:c,onClick:()=>{if(!c){if(m)return void p(!1);(()=>{var e;let a=null==(e=N.current)?void 0:e.getBoundingClientRect(),r=Number.parseFloat(window.getComputedStyle(document.documentElement).getPropertyValue("--ui-scale-factor"))||1;if(a){let e=Math.round(12*r),t=Math.round(192*r),o=Math.max(0,window.innerHeight-a.bottom-e),s=Math.max(0,a.top-e),n="top"===u||"bottom"!==u&&o<t&&s>o,l=n?s:o;b(n),w(Math.max(0,Math.floor(Math.min(t,l))))}else b("top"===u),w(Math.round(192*r));p(!0)})()}},className:"\n w-full ".concat(l?"h-[var(--control-height-sm)] text-[length:var(--font-size-xs)]":"h-[calc(var(--control-height-lg)+var(--space-2))] text-[length:var(--font-size-md)]"," flex items-center justify-between px-[var(--space-3)] outline-none\n bg-[var(--color-background-alt,#f4f4f5)] border font-mono font-bold tracking-wider text-[var(--color-text,#0a0a0a)]\n transition-all duration-200\n ").concat(c?"opacity-50 cursor-not-allowed":"","\n ").concat(m?"border-[var(--color-border-focus,#0a0a0a)] bg-[var(--color-surface,#ffffff)] shadow-[0_0_0_1px_var(--color-border-muted,#a1a1aa)]":"border-[var(--color-border,#d4d4d8)] hover:border-[var(--color-border-muted,#a1a1aa)] hover:bg-[var(--color-surface,#ffffff)]","\n "),children:[(0,t.jsx)("span",{className:"min-w-0 flex-1 truncate text-left",children:(null==z?void 0:z.label)||"SELECT"}),(0,t.jsx)(i.A,{className:"shrink-0 transform transition-transform text-[var(--color-text-muted,#6b7280)] group-hover:text-[var(--color-text,#0a0a0a)] ".concat(m?"rotate-180 text-[var(--color-text,#0a0a0a)]":""),style:{width:"var(--font-size-md)",height:"var(--font-size-md)"}})]}),m&&!c&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"absolute top-0 right-0 w-2 h-2 border-t border-r border-[var(--color-border-focus,#0a0a0a)] pointer-events-none z-30"}),(0,t.jsx)("div",{className:"absolute bottom-0 left-0 w-2 h-2 border-b border-l border-[var(--color-border-focus,#0a0a0a)] pointer-events-none z-30"})]}),m&&!c&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"fixed inset-0 z-40",onClick:()=>p(!1)}),(0,t.jsxs)("div",{className:"absolute left-0 w-full bg-[var(--color-surface,#ffffff)] border border-[var(--color-border-focus,#0a0a0a)] shadow-[0_0_0_1px_var(--color-border-muted,#a1a1aa)] overflow-y-auto z-50 ".concat(h?"bottom-full mb-[var(--space-1)]":"top-full mt-[var(--space-1)]"),style:{maxHeight:"".concat(g,"px")},children:[f&&(0,t.jsx)("div",{className:"sticky top-0 bg-[var(--color-surface,#ffffff)] border-b border-[var(--color-border-muted,#e5e5e5)] p-[var(--space-2)]",children:(0,t.jsx)("input",{ref:k,value:j,onChange:e=>y(e.target.value),placeholder:v,className:"w-full h-[var(--control-height-sm)] px-[var(--space-2)] border border-[var(--color-border,#d4d4d8)] font-mono text-[length:var(--font-size-xs)] text-[var(--color-text,#0a0a0a)] bg-[var(--color-background-alt,#f4f4f5)] focus:outline-none focus:border-[var(--color-border-focus,#0a0a0a)]",onKeyDown:e=>{"Escape"===e.key&&(e.preventDefault(),p(!1))}})}),0===C.length?(0,t.jsx)("div",{className:"px-[var(--space-3)] py-[var(--space-3)] text-[var(--color-text-faint,#9ca3af)] font-mono text-[length:var(--font-size-xs)]",children:x}):C.map(e=>(0,t.jsxs)("button",{type:"button",onClick:()=>{s(e.value),p(!1)},className:"w-full text-left px-[var(--space-3)] py-[var(--space-2)] text-[var(--color-text-muted,#6b7280)] hover:text-[var(--color-text,#0a0a0a)] hover:bg-[var(--color-background-alt,#f4f4f5)] font-mono ".concat(l?"text-[length:var(--font-size-xs)]":"text-[length:var(--font-size-sm)]"," border-b border-[var(--color-border-muted,#e5e5e5)] last:border-0 flex items-center gap-[var(--space-2)] group/item"),children:[(0,t.jsx)("div",{className:"w-1.5 h-1.5 flex-shrink-0 ".concat(e.value===r?"bg-[var(--color-text,#0a0a0a)]":"bg-[var(--color-border,#d4d4d8)] group-hover/item:bg-[var(--color-text,#0a0a0a)]")}),(0,t.jsx)("span",{className:"min-w-0 flex-1 truncate",children:e.label})]},e.value))]})]})]})};var f=r(47650),v=r(65229);let x=e=>{let{isOpen:a,onClose:r,title:s,subtitle:n,children:l,width:c="md",footerLabel:i=""}=e,[d,x]=(0,o.useState)(!1),[u,m]=(0,o.useState)(!1),[p,h]=(0,o.useState)(!1);if((0,o.useEffect)(()=>{h(!0)},[]),(0,o.useEffect)(()=>{if(a)x(!0),requestAnimationFrame(()=>{requestAnimationFrame(()=>{m(!0)})});else{m(!1);let e=setTimeout(()=>{x(!1)},200);return()=>clearTimeout(e)}},[a]),(0,o.useEffect)(()=>{let e=e=>{"Escape"===e.key&&r()};return a&&window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[a,r]),!d||!p)return null;let b=(0,t.jsxs)("div",{className:"fixed inset-0 z-[110]",onMouseDown:r,"data-testid":"drawer-backdrop",children:[(0,t.jsx)("div",{className:"absolute inset-0 bg-black/10"}),(0,t.jsx)("div",{className:"absolute right-0 top-0 h-full overflow-hidden",style:{width:{sm:"min(100vw, calc(320px * var(--ui-scale-factor, 1)))",md:"min(100vw, calc(400px * var(--ui-scale-factor, 1)))",lg:"min(100vw, calc(520px * var(--ui-scale-factor, 1)))",full:"100vw"}[c]},onMouseDown:e=>e.stopPropagation(),children:(0,t.jsxs)("div",{className:"\n h-full bg-[var(--color-surface,#ffffff)] flex flex-col clip-specimen border-mech shadow-mech\n transition-transform duration-200 ease-out\n ".concat(u?"translate-x-0":"translate-x-full","\n "),children:[(0,t.jsxs)("div",{className:"relative border-b border-[var(--color-border,#d4d4d8)]",children:[(0,t.jsx)("div",{className:"absolute top-0 left-0 right-0 h-[2px] bg-hazard-stripes"}),(0,t.jsx)("div",{className:"px-[var(--space-4)] pt-[var(--space-3)] pb-[var(--space-2)]",children:(0,t.jsxs)("div",{className:"flex items-start justify-between",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"label-specimen-sm text-[var(--color-text-muted,#6b7280)]",children:n||"PANEL"}),(0,t.jsx)("h2",{className:"font-mono font-bold text-[length:var(--font-size-md)] text-[var(--color-text,#0a0a0a)] tracking-tight mt-[2px]",children:s})]}),(0,t.jsx)("button",{onClick:r,"aria-label":"Close drawer",className:"p-[var(--space-1)] hover:bg-[var(--color-background-alt,#f4f4f5)] transition-colors group -mr-[var(--space-1)]",children:(0,t.jsx)(v.A,{className:"text-[var(--color-text-muted,#6b7280)] group-hover:text-[var(--color-text,#0a0a0a)] transition-colors",style:{width:"var(--font-size-md)",height:"var(--font-size-md)"}})})]})})]}),(0,t.jsx)("div",{className:"flex-1 overflow-y-auto p-[var(--space-4)]",children:l}),(0,t.jsx)("div",{className:"px-[var(--space-4)] py-[var(--space-2)] border-t border-[var(--color-border,#d4d4d8)]",children:(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)("span",{className:"label-specimen-sm text-[var(--color-text-faint,#9ca3af)]",children:i||""}),(0,t.jsx)("span",{className:"font-mono text-[8px] text-[var(--color-text-faint,#9ca3af)] tracking-[0.3em]",children:"|||||||||||"})]})})]})})]});return(0,f.createPortal)(b,document.body)},u=e=>{let{isOpen:a,onClose:r,title:s,subtitle:n,children:l,icon:c,size:i="sm",hideHeader:d=!1,hideTitle:x=!1,contentClassName:u,headerAction:m,headerActionPosition:p="right",footer:h,footerClassName:b,showBottomStripe:g=!0,dismissible:w=!0}=e,[j,y]=(0,o.useState)(!1),[N,k]=(0,o.useState)(!1),[z,C]=(0,o.useState)(!1),E=(0,o.useRef)(null),M=(0,o.useId)();(0,o.useEffect)(()=>(C(!0),()=>C(!1)),[]),(0,o.useEffect)(()=>{a?(y(!0),k(!1)):j&&k(!0)},[a,j]);let A=(0,o.useCallback)(()=>{N&&(y(!1),k(!1))},[N]);(0,o.useEffect)(()=>(j&&!N?document.body.style.overflow="hidden":j||(document.body.style.overflow=""),()=>{document.body.style.overflow=""}),[j,N]),(0,o.useEffect)(()=>{let e=e=>{w&&"Escape"===e.key&&r()};return j&&!N&&window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[j,N,w,r]),(0,o.useEffect)(()=>{var e;if(!j||N)return;let a=E.current;if(!a)return;let r=document.activeElement,t=e=>{if(e.hasAttribute("disabled")||"true"===e.getAttribute("aria-disabled")||-1===e.tabIndex||e.closest("[inert]")||e.hasAttribute("hidden")||e instanceof HTMLInputElement&&"hidden"===e.type)return!1;let a=window.getComputedStyle(e);return"none"!==a.display&&"hidden"!==a.visibility},o=()=>Array.from(a.querySelectorAll('a[href],button:not([disabled]),textarea:not([disabled]),input:not([disabled]),select:not([disabled]),[tabindex]:not([tabindex="-1"])')).filter(t),s=o(),n=s.find(e=>!!e.hasAttribute("autofocus")||["INPUT","TEXTAREA","SELECT"].includes(e.tagName));(null!=(e=null!=n?n:s[0])?e:a).focus();let l=e=>{if("Tab"!==e.key)return;let r=o();if(0===r.length){e.preventDefault(),a.focus();return}let t=r[0],s=r[r.length-1],n=document.activeElement;e.shiftKey?n&&n!==t&&a.contains(n)||(e.preventDefault(),s.focus()):n&&n!==s&&a.contains(n)||(e.preventDefault(),t.focus())};return a.addEventListener("keydown",l),()=>{a.removeEventListener("keydown",l),null==r||r.focus()}},[j,N]);let L=s||n||"System_Message";return j&&z?(0,f.createPortal)((0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"fixed inset-0 z-[120] overflow-y-auto overflow-x-hidden",children:[(0,t.jsx)("div",{className:"absolute inset-0 bg-[var(--color-background-alt,#f4f4f5)]/95 ".concat(N?"animate-fade-out":"animate-fade-in"),onClick:w?r:void 0,onAnimationEnd:A,children:(0,t.jsx)("div",{className:"absolute inset-0 opacity-[0.1] bg-[radial-gradient(var(--color-text,#000)_1px,transparent_1px)] bg-[size:3px_3px]"})}),(0,t.jsx)("div",{"data-testid":"modal-dismiss-layer",className:"relative z-10 min-h-full flex items-start sm:items-center justify-center p-[var(--space-3)] sm:p-[var(--space-4)]",onClick:w?r:void 0,children:(0,t.jsxs)("div",{ref:E,role:"dialog","aria-modal":"true","aria-labelledby":!d&&L?M:void 0,tabIndex:-1,className:"w-full max-h-[calc(100vh-2rem)] max-h-[calc(100dvh-2rem)] sm:max-h-[calc(100vh-4rem)] sm:max-h-[calc(100dvh-4rem)] flex flex-col overflow-hidden clip-specimen border-mech bg-[var(--color-surface,#ffffff)] shadow-mech font-mono text-[var(--color-text,#0a0a0a)] corner-marks ".concat(N?"animate-terminal-close":"animate-terminal"),style:{maxWidth:{sm:"min(100%, calc(24rem * var(--ui-scale-factor, 1)))",md:"min(100%, calc(28rem * var(--ui-scale-factor, 1)))",lg:"min(100%, calc(32rem * var(--ui-scale-factor, 1)))"}[i]},onClick:e=>e.stopPropagation(),children:[(0,t.jsx)("div",{className:"absolute top-[-1px] right-[-1px] w-2 h-2 border-t-2 border-r-2 border-[var(--color-border-focus,#0a0a0a)] pointer-events-none z-20"}),(0,t.jsx)("div",{className:"absolute bottom-[-1px] left-[-1px] w-2 h-2 border-b-2 border-l-2 border-[var(--color-border-focus,#0a0a0a)] pointer-events-none z-20"}),!d&&(0,t.jsxs)("div",{className:"shrink-0 border-b border-[var(--color-border,#d4d4d8)] bg-[var(--color-surface-alt,#fafafa)] px-[var(--space-4)] py-[var(--space-3)] flex items-center justify-between gap-[var(--space-3)]",children:[(0,t.jsxs)("div",{className:"flex items-center gap-[var(--space-2)]",children:["left"===p?m:null,c&&(0,t.jsx)("div",{className:"w-6 h-6 border border-[var(--color-border,#d4d4d8)] bg-[var(--color-surface,#ffffff)] flex items-center justify-center shrink-0",children:c}),(0,t.jsx)("h3",{id:M,className:"font-mono text-[length:var(--font-size-xs)] font-bold text-[var(--color-text-muted,#6b7280)] uppercase tracking-[0.25em]",children:L})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:["left"!==p?m:null,w&&(0,t.jsx)("button",{onClick:r,className:"text-[var(--color-text-muted,#6b7280)] hover:text-[var(--color-text,#0a0a0a)] transition-colors",children:(0,t.jsx)(v.A,{style:{width:"var(--font-size-md)",height:"var(--font-size-md)"}})})]})]}),(0,t.jsx)("div",{className:"p-[var(--space-6)] flex-1 relative overflow-y-auto overflow-x-hidden min-h-0 ".concat(null!=u?u:""),children:(0,t.jsx)("div",{className:"relative z-10 font-mono text-sm tracking-[0.05em] text-[var(--color-text,#0a0a0a)]",children:l})}),h&&(0,t.jsxs)("div",{className:"shrink-0 border-t border-[var(--color-border,#d4d4d8)] bg-[var(--color-surface-alt,#fafafa)] px-[var(--space-4)] py-2 flex items-center gap-3 ".concat(null!=b?b:""),children:[g&&(0,t.jsx)("div",{className:"h-4 flex-1 bg-[repeating-linear-gradient(90deg,var(--color-text,#000),var(--color-text,#000)_1px,transparent_1px,transparent_3px)] opacity-30"}),(0,t.jsx)("div",{className:"shrink-0",children:h})]})]})})]}),(0,t.jsx)("style",{children:"\n @keyframes terminal-open {\n 0% {\n opacity: 0;\n transform: scaleY(0) scaleX(0.95);\n filter: blur(4px);\n }\n 100% {\n opacity: 1;\n transform: scaleY(1) scaleX(1);\n filter: blur(0);\n }\n }\n @keyframes terminal-close {\n 0% {\n opacity: 1;\n transform: scaleY(1) scaleX(1);\n filter: blur(0);\n }\n 100% {\n opacity: 0;\n transform: scaleY(0) scaleX(0.95);\n filter: blur(4px);\n }\n }\n @keyframes fade-in {\n from { opacity: 0; }\n to { opacity: 1; }\n }\n @keyframes fade-out {\n from { opacity: 1; }\n to { opacity: 0; }\n }\n .animate-terminal {\n animation: terminal-open 0.15s cubic-bezier(0.23, 1, 0.32, 1) forwards;\n transform-origin: center;\n }\n .animate-terminal-close {\n animation: terminal-close 0.12s cubic-bezier(0.55, 0, 1, 0.45) forwards;\n transform-origin: center;\n }\n .animate-fade-in {\n animation: fade-in 0.2s ease-out forwards;\n }\n .animate-fade-out {\n animation: fade-out 0.15s ease-in forwards;\n }\n "})]}),document.body):null};var m=r(88661),p=r.n(m);let h=e=>{let{isOpen:a,onClose:r,title:s,children:n,className:l="",anchor:c="right",anchorEl:i}=e,d=(0,o.useRef)(null),[v,x]=(0,o.useState)(null),[u,m]=(0,o.useState)(!1);if((0,o.useEffect)(()=>{m(!0)},[]),(0,o.useEffect)(()=>{if(a&&i){let e=i.getBoundingClientRect(),a=window.innerHeight-e.bottom,r="left"===c?e.left:e.right;a<250?x({bottom:window.innerHeight-e.top+4,left:r}):x({top:e.bottom+4,left:r})}},[a,i,c]),(0,o.useEffect)(()=>{let e=e=>{d.current&&!d.current.contains(e.target)&&r()};return a&&setTimeout(()=>{document.addEventListener("mousedown",e)},0),()=>document.removeEventListener("mousedown",e)},[a,r]),(0,o.useEffect)(()=>{let e=e=>{"Escape"===e.key&&r()};return a&&window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[a,r]),!a)return null;let h=!!i&&u,b=(0,t.jsxs)("div",{ref:d,style:h&&v?{...void 0!==v.top?{top:v.top}:{},...void 0!==v.bottom?{bottom:v.bottom}:{},left:"left"===c?v.left:void 0,right:"right"===c?window.innerWidth-v.left:void 0}:void 0,className:"jsx-25a89afa3a28f8c "+"\n bg-[var(--color-surface)] border border-[var(--color-border-focus,#0a0a0a)] shadow-mech\n min-w-[200px] animate-popover\n ".concat(h?"fixed z-[9999]":"absolute z-50 ".concat("right"===c?"right-0":"left-0"),"\n ").concat(l,"\n "),children:[s&&(0,t.jsxs)("div",{className:"jsx-25a89afa3a28f8c flex items-center justify-between px-[var(--space-3)] py-[var(--space-2)] border-b border-[var(--color-border)]",children:[(0,t.jsx)("span",{className:"jsx-25a89afa3a28f8c text-[length:var(--font-size-xs)] font-mono text-[var(--color-text-muted)] uppercase tracking-widest",children:s}),(0,t.jsxs)("div",{className:"jsx-25a89afa3a28f8c flex gap-[2px]",children:[(0,t.jsx)("div",{className:"jsx-25a89afa3a28f8c w-1 h-1 bg-[var(--color-text-muted)]"}),(0,t.jsx)("div",{className:"jsx-25a89afa3a28f8c w-1 h-1 bg-[var(--color-border)]"})]})]}),(0,t.jsx)("div",{className:"jsx-25a89afa3a28f8c p-[var(--space-3)]",children:n}),(0,t.jsx)("div",{className:"jsx-25a89afa3a28f8c absolute top-0 right-0 w-2 h-2 border-t border-r border-[var(--color-border-focus,#0a0a0a)]"}),(0,t.jsx)("div",{className:"jsx-25a89afa3a28f8c absolute bottom-0 left-0 w-2 h-2 border-b border-l border-[var(--color-border-focus,#0a0a0a)]"}),(0,t.jsx)(p(),{id:"25a89afa3a28f8c",children:"@keyframes popover-open{0%{opacity:0;transform:translatey(-4px)scale(.98)}100%{opacity:1;transform:translatey(0)scale(1)}}.animate-popover.jsx-25a89afa3a28f8c{animation:popover-open.12s cubic-bezier(.16,1,.3,1)forwards}"})]});return h?(0,f.createPortal)(b,document.body):b};var b=r(52056);let g=e=>{let{isOpen:a,onClose:r,onConfirm:o,title:s,message:n,confirmText:c="CONFIRM",cancelText:i="CANCEL",variant:d="default",loading:f=!1}=e,v={danger:{icon:"text-[var(--color-warning,#ff4d00)]",iconBg:"bg-[var(--color-warning,#ff4d00)]/10",border:"border-[var(--color-warning,#ff4d00)]",buttonVariant:"danger",buttonClassName:""},warning:{icon:"text-[var(--color-warning-alt,#ff9500)]",iconBg:"bg-[var(--color-warning-alt,#ff9500)]/10",border:"border-[var(--color-warning-alt,#ff9500)]",buttonVariant:"secondary",buttonClassName:"!bg-[var(--color-warning-alt,#ff9500)] !text-white !border-[var(--color-warning-alt,#ff9500)] hover:!bg-[var(--color-warning-alt,#ff9500)]/90"},default:{icon:"text-[var(--color-text,#0a0a0a)]",iconBg:"bg-[var(--color-text,#0a0a0a)]/10",border:"border-[var(--color-text,#0a0a0a)]",buttonVariant:"primary",buttonClassName:""}}[d];return(0,t.jsx)(u,{isOpen:a,onClose:r,title:s,icon:(0,t.jsx)(b.A,{style:{width:"var(--font-size-lg)",height:"var(--font-size-lg)"},className:v.icon}),size:"sm",children:(0,t.jsxs)("div",{className:"space-y-[var(--space-4)]",children:[(0,t.jsx)("p",{className:"font-mono text-[length:var(--font-size-sm)] text-[var(--color-text-muted,#6b7280)] leading-relaxed",children:n}),"danger"===d&&(0,t.jsx)("div",{className:"p-[var(--space-3)] ".concat(v.iconBg," border ").concat(v.border," border-dashed"),children:(0,t.jsxs)("div",{className:"flex items-center gap-[var(--space-2)]",children:[(0,t.jsx)(b.A,{style:{width:"var(--font-size-sm)",height:"var(--font-size-sm)"},className:v.icon}),(0,t.jsx)("span",{className:"font-mono text-[length:var(--font-size-sm)] text-[var(--color-text-muted,#6b7280)]",children:"This action cannot be undone."})]})}),(0,t.jsxs)("div",{className:"flex gap-[var(--space-2)] pt-[var(--space-2)]",children:[(0,t.jsx)(l,{onClick:r,disabled:f,variant:"secondary",size:"lg",className:"flex-1",children:i}),(0,t.jsx)(l,{onClick:o,disabled:f,variant:v.buttonVariant,size:"lg",loading:f,className:"flex-1 ".concat(v.buttonClassName),children:f?"PROCESSING...":c})]})]})})},w=e=>{let{size:a=16,className:r=""}=e;return(0,t.jsx)("svg",{width:a,height:a,viewBox:"0 0 111 111",fill:"none",className:r,children:(0,t.jsx)("path",{d:"M54.921 110.034C85.359 110.034 110.034 85.402 110.034 55.017C110.034 24.6319 85.359 0 54.921 0C26.0432 0 2.35281 22.1714 0 50.3923H72.8467V59.6416H0C2.35281 87.8625 26.0432 110.034 54.921 110.034Z",fill:"currentColor"})})},j=e=>{let{size:a=16,className:r=""}=e;return(0,t.jsxs)("svg",{width:a,height:a,viewBox:"0 0 256 417",className:r,children:[(0,t.jsx)("path",{fill:"currentColor",d:"M127.961 0l-2.795 9.5v275.668l2.795 2.79 127.962-75.638z"}),(0,t.jsx)("path",{fill:"currentColor",opacity:"0.6",d:"M127.962 0L0 212.32l127.962 75.639V154.158z"}),(0,t.jsx)("path",{fill:"currentColor",d:"M127.961 312.187l-1.575 1.92v98.199l1.575 4.6L256 236.587z"}),(0,t.jsx)("path",{fill:"currentColor",opacity:"0.6",d:"M127.962 416.905v-104.72L0 236.585z"}),(0,t.jsx)("path",{fill:"currentColor",opacity:"0.8",d:"M127.961 287.958l127.96-75.637-127.96-58.162z"}),(0,t.jsx)("path",{fill:"currentColor",opacity:"0.4",d:"M0 212.32l127.96 75.638v-133.8z"})]})},y=e=>{let{size:a=16,className:r=""}=e;return(0,t.jsx)("svg",{width:a,height:a,viewBox:"0 0 256 256",className:r,children:(0,t.jsx)("path",{fill:"currentColor",d:"M128 0C57.308 0 0 57.308 0 128s57.308 128 128 128 128-57.308 128-128S198.692 0 128 0zm70.56 186.624l-17.856-49.088L128 217.6l-52.704-80.064-17.856 49.088L128 38.4l70.56 148.224z"})})},N=e=>{let{size:a=16,className:r=""}=e;return(0,t.jsxs)("svg",{width:a,height:a,viewBox:"0 0 256 256",className:r,children:[(0,t.jsx)("circle",{cx:"128",cy:"128",r:"128",fill:"currentColor"}),(0,t.jsx)("path",{fill:"white",d:"M81.5 170.5c-11.3 0-20.2-3.2-26.7-9.5-6.5-6.4-9.8-15.3-9.8-26.8 0-14.5 4.2-26.2 12.5-35.2 8.4-9 19.5-13.5 33.3-13.5 11 0 19.7 3.1 26.2 9.4 6.5 6.2 9.7 14.9 9.7 26 0 14.7-4.2 26.6-12.5 35.7-8.3 9-19.4 13.5-33.3 13.5h.6v.4zm3.8-18c7.4 0 13.3-3.1 17.8-9.2 4.5-6.2 6.7-14.3 6.7-24.4 0-6.8-1.5-12-4.6-15.8-3-3.7-7.3-5.6-12.8-5.6-7.4 0-13.4 3.1-17.8 9.3-4.5 6.2-6.7 14.3-6.7 24.3 0 6.8 1.6 12 4.7 15.7 3.1 3.8 7.3 5.7 12.7 5.7z"}),(0,t.jsx)("path",{fill:"white",d:"M137.5 169V87.5h26.3c10.5 0 18.5 2.2 24 6.7 5.5 4.4 8.3 10.8 8.3 19.2 0 8.8-2.9 15.8-8.8 20.8-5.9 5-14.1 7.5-24.6 7.5h-7.8V169h-17.4zm17.4-43.8h5.3c5.2 0 9.1-1.1 11.8-3.4 2.7-2.3 4-5.5 4-9.8 0-3.8-1.2-6.6-3.6-8.6-2.4-2-6-3-10.8-3h-6.7v24.8z"})]})},k=e=>{let{size:a=16,className:r=""}=e;return(0,t.jsx)("svg",{width:a,height:a,viewBox:"0 0 256 256",className:r,children:(0,t.jsx)("path",{fill:"currentColor",d:"M177.1 94.9c-3.5-2-7.8-2-11.3 0l-26.4 15.6-17.9 10.2-26.4 15.6c-3.5 2-7.8 2-11.3 0l-20.7-12.2c-3.5-2-5.7-5.8-5.7-9.8V91.8c0-3.9 2.1-7.7 5.7-9.8l20.5-11.9c3.5-2 7.8-2 11.3 0l20.5 11.9c3.5 2 5.7 5.8 5.7 9.8v15.6l17.9-10.4V81.1c0-3.9-2.1-7.7-5.7-9.8L95.7 47.8c-3.5-2-7.8-2-11.3 0L45.2 71.4c-3.6 2.1-5.7 5.9-5.7 9.8v47.1c0 3.9 2.1 7.7 5.7 9.8l38.8 22.5c3.5 2 7.8 2 11.3 0l26.4-15.4 17.9-10.4 26.4-15.4c3.5-2 7.8-2 11.3 0l20.5 11.9c3.5 2 5.7 5.8 5.7 9.8v22.5c0 3.9-2.1 7.7-5.7 9.8l-20.4 12c-3.5 2-7.8 2-11.3 0l-20.5-11.9c-3.5-2-5.7-5.8-5.7-9.8v-15.4l-17.9 10.4v15.8c0 3.9 2.1 7.7 5.7 9.8l38.8 22.5c3.5 2 7.8 2 11.3 0l38.8-22.5c3.5-2 5.7-5.8 5.7-9.8v-47.3c0-3.9-2.1-7.7-5.7-9.8l-39-22.3z"})})},z=e=>{let{size:a=16,className:r=""}=e;return(0,t.jsxs)("svg",{width:a,height:a,viewBox:"0 0 397 311",className:r,children:[(0,t.jsx)("path",{fill:"currentColor",d:"M64.6 237.9c2.4-2.4 5.7-3.8 9.2-3.8h317.4c5.8 0 8.7 7 4.6 11.1l-62.7 62.7c-2.4 2.4-5.7 3.8-9.2 3.8H6.5c-5.8 0-8.7-7-4.6-11.1l62.7-62.7z"}),(0,t.jsx)("path",{fill:"currentColor",d:"M64.6 3.8C67.1 1.4 70.4 0 73.8 0h317.4c5.8 0 8.7 7 4.6 11.1l-62.7 62.7c-2.4 2.4-5.7 3.8-9.2 3.8H6.5c-5.8 0-8.7-7-4.6-11.1L64.6 3.8z"}),(0,t.jsx)("path",{fill:"currentColor",d:"M333.1 120.1c-2.4-2.4-5.7-3.8-9.2-3.8H6.5c-5.8 0-8.7 7-4.6 11.1l62.7 62.7c2.4 2.4 5.7 3.8 9.2 3.8h317.4c5.8 0 8.7-7 4.6-11.1l-62.7-62.7z"})]})},C=e=>{let{size:a=16,className:r=""}=e;return(0,t.jsxs)("svg",{width:a,height:a,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",className:r,children:[(0,t.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,t.jsx)("path",{d:"M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"}),(0,t.jsx)("path",{d:"M2 12h20"})]})},E=e=>({base:w,ethereum:j,arbitrum:y,optimism:N,polygon:k,solana:z,"solana-devnet":z})[e.toLowerCase()]||C,M={base:"#0052FF",ethereum:"#627EEA",arbitrum:"#28A0F0",optimism:"#FF0420",polygon:"#8247E5"},A=e=>{let{value:a,onChange:r,chains:s,disabled:n=!1,size:l="sm",className:c="",label:d}=e,[v,x]=(0,o.useState)(!1),[u,m]=(0,o.useState)(!1),p=(0,o.useRef)(null),[h,b]=(0,o.useState)(null),g=E(a),w=M[a.toLowerCase()]||"#888",j="sm"===l;return(0,o.useEffect)(()=>{m(!0)},[]),(0,o.useEffect)(()=>{if(v&&p.current){let e=p.current.getBoundingClientRect(),a=Number.parseFloat(window.getComputedStyle(document.documentElement).getPropertyValue("--ui-scale-factor"))||1;b({top:e.bottom+Math.round(4*a),left:e.left,width:Math.max(e.width,100)})}},[v]),(0,t.jsxs)("div",{className:"relative w-full ".concat(c),children:[d&&(0,t.jsx)("label",{className:"block text-[length:var(--font-size-xs)] font-mono font-bold uppercase tracking-widest text-[var(--color-text-muted,#6b7280)] mb-[var(--space-1)] px-[var(--space-1)] pointer-events-none",children:d}),(0,t.jsxs)("button",{ref:p,type:"button",onClick:()=>!n&&x(!v),disabled:n,className:"\n w-full ".concat(j?"h-[var(--control-height-sm)] text-[length:var(--font-size-xs)]":"h-[calc(var(--control-height-lg)+var(--space-2))] text-[length:var(--font-size-md)]"," flex items-center justify-between px-[var(--space-2)] outline-none group\n bg-[var(--color-background-alt,#f4f4f5)] border font-mono font-bold tracking-wider text-[var(--color-text,#0a0a0a)]\n transition-all duration-200 disabled:opacity-50 disabled:cursor-not-allowed\n ").concat(v?"border-[var(--color-border-focus,#0a0a0a)] bg-[var(--color-surface,#ffffff)] shadow-mech":"border-[var(--color-border,#d4d4d8)] hover:border-[var(--color-border-muted,#a1a1aa)] hover:bg-[var(--color-surface,#ffffff)]","\n "),children:[(0,t.jsxs)("span",{className:"flex items-center gap-[var(--space-1)] truncate",children:[(0,t.jsx)("span",{style:{color:w},children:(0,t.jsx)(g,{size:j?10:12})}),(0,t.jsx)("span",{className:"uppercase",children:a})]}),(0,t.jsx)(i.A,{className:"transform transition-transform text-[var(--color-text-muted,#6b7280)] group-hover:text-[var(--color-text,#0a0a0a)] ".concat(v?"rotate-180 text-[var(--color-text,#0a0a0a)]":""),style:{width:j?"var(--font-size-sm)":"var(--font-size-md)",height:j?"var(--font-size-sm)":"var(--font-size-md)"}})]}),v&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"absolute top-0 right-0 w-2 h-2 border-t border-r border-[var(--color-border-focus,#0a0a0a)] pointer-events-none z-30"}),(0,t.jsx)("div",{className:"absolute bottom-0 left-0 w-2 h-2 border-b border-l border-[var(--color-border-focus,#0a0a0a)] pointer-events-none z-30"})]}),v&&u&&(0,f.createPortal)((0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"fixed inset-0 z-[9998]",onClick:()=>x(!1)}),(0,t.jsx)("div",{className:"fixed z-[9999] bg-[var(--color-surface,#ffffff)] border border-[var(--color-border-focus,#0a0a0a)] shadow-mech overflow-y-auto",style:{top:null==h?void 0:h.top,left:null==h?void 0:h.left,width:null==h?void 0:h.width,maxHeight:"calc(12rem * var(--ui-scale-factor, 1))"},children:s.map(e=>{let o=E(e),s=M[e.toLowerCase()]||"#888";return(0,t.jsxs)("button",{type:"button",onClick:()=>{r(e),x(!1)},className:"w-full text-left px-[var(--space-2)] py-[var(--space-2)] text-[var(--color-text-muted,#6b7280)] hover:text-[var(--color-text,#0a0a0a)] hover:bg-[var(--color-background-alt,#f4f4f5)] font-mono ".concat(j?"text-[length:var(--font-size-xs)]":"text-[length:var(--font-size-sm)]"," border-b border-[var(--color-border-muted,#e5e5e5)] last:border-0 flex items-center gap-[var(--space-2)] group/item uppercase tracking-wider"),children:[(0,t.jsx)("span",{style:{color:s},children:(0,t.jsx)(o,{size:j?10:12})}),(0,t.jsx)("span",{className:"truncate",children:e}),(0,t.jsx)("div",{className:"ml-auto w-1.5 h-1.5 flex-shrink-0 ".concat(e===a?"bg-[var(--color-text,#0a0a0a)]":"bg-[var(--color-border,#d4d4d8)] group-hover/item:bg-[var(--color-text,#0a0a0a)]")})]},e)})})]}),document.body)]})},L=e=>{let{checked:a,onChange:r,label:o,disabled:s=!1,size:n="md"}=e,l="sm"===n,c=l?"calc(var(--space-4) - var(--space-1))":"calc(var(--space-4) - 2px)";return(0,t.jsxs)("label",{className:"flex items-center gap-[var(--space-2)] ".concat(s?"opacity-50 cursor-not-allowed":"cursor-pointer"),children:[(0,t.jsx)("button",{type:"button",role:"switch","aria-checked":a,disabled:s,onClick:()=>r(!a),className:"\n rounded-full relative transition-colors duration-200 flex-shrink-0\n ".concat(a?"bg-[var(--color-accent,#ccff00)]":"bg-[var(--color-border,#d4d4d8)]","\n ").concat(s?"cursor-not-allowed":"cursor-pointer","\n "),style:{width:l?"calc(var(--space-4) * 2)":"calc(var(--space-4) * 2 + var(--space-2))",height:l?"var(--space-4)":"calc(var(--space-4) + var(--space-1))"},children:(0,t.jsx)("span",{className:"\n rounded-full absolute top-1/2 left-[2px]\n bg-[var(--color-text,#0a0a0a)] transition-transform duration-200\n ",style:{width:c,height:c,transform:a?"translate(".concat(l?"var(--space-4)":"calc(var(--space-4) + var(--space-1))",", -50%)"):"translate(0, -50%)"}})}),o&&(0,t.jsx)("span",{className:"font-mono tracking-widest uppercase text-[length:var(--font-size-xs)] text-[var(--color-text,#0a0a0a)] select-none",children:o})]})};var S=r(5917);let _=e=>{let{options:a,value:r,onChange:o,multi:s=!1,className:n="",disabled:l=!1,ariaLabel:c}=e,i=e=>{if(!l)if(s){let a=Array.isArray(r)?r:[];a.includes(e)?o(a.filter(a=>a!==e)):o([...a,e])}else o(e)};return(0,t.jsxs)("div",{className:"relative clip-specimen-sm border-mech bg-[var(--color-surface,#ffffff)] shadow-mech ".concat(l?"opacity-60":""," ").concat(n),role:s?"group":"radiogroup","aria-label":c,"data-testid":"item-picker",children:[(0,t.jsx)("div",{className:"absolute top-0 right-0 w-2 h-2 border-t border-r border-[var(--color-border-focus,#0a0a0a)] pointer-events-none"}),(0,t.jsx)("div",{className:"absolute bottom-0 left-0 w-2 h-2 border-b border-l border-[var(--color-border-focus,#0a0a0a)] pointer-events-none"}),(0,t.jsx)("div",{className:"absolute top-[6px] right-[10px] h-[calc(100%-12px)] w-[14px] opacity-35 pointer-events-none","aria-hidden":"true",style:{backgroundImage:"repeating-linear-gradient(to bottom, var(--color-text-muted,#71717a) 0px, var(--color-text-muted,#71717a) 2px, transparent 2px, transparent 4px)"}}),a.map((e,o)=>{let n=(e=>s&&Array.isArray(r)?r.includes(e):r===e)(e.value),c=e.description?"item-picker-description-".concat(e.value):void 0;return(0,t.jsxs)("div",{role:s?"checkbox":"radio",tabIndex:l?-1:0,"aria-checked":n,"aria-describedby":c,"data-testid":"item-picker-option-".concat(e.value),onClick:()=>i(e.value),onKeyDown:a=>{l||("Enter"===a.key||" "===a.key)&&(a.preventDefault(),i(e.value))},className:"\n group relative flex w-full items-center gap-[var(--space-2)] px-[var(--space-3)] py-[var(--space-2)] pr-[calc(var(--space-4)+12px)] text-left transition-colors\n ".concat(o!==a.length-1?"border-b border-[var(--color-border,#d4d4d8)]":"","\n ").concat(n?"bg-[var(--color-background-alt,#f4f4f5)] text-[var(--color-text,#0a0a0a)] dark:text-[var(--color-text-inverse,#ffffff)]":"bg-[var(--color-surface,#ffffff)] text-[var(--color-text-muted,#6b7280)] hover:bg-[var(--color-background-alt,#f4f4f5)] hover:text-[var(--color-text,#0a0a0a)] dark:text-[var(--color-text-muted-inverse,#a1a1aa)] dark:hover:text-[var(--color-text-inverse,#ffffff)]","\n ").concat(l?"cursor-not-allowed":"cursor-pointer","\n "),children:[(0,t.jsx)("span",{className:"\n relative mt-[1px] flex h-3.5 w-3.5 shrink-0 items-center justify-center border transition-colors\n ".concat(s?"rounded-[1px]":"rounded-full","\n ").concat(n?"border-[var(--color-text,#0a0a0a)] bg-[var(--color-text,#0a0a0a)] text-[var(--color-surface,#ffffff)] dark:border-[var(--color-text-inverse,#ffffff)] dark:bg-[var(--color-text-inverse,#ffffff)] dark:text-[var(--color-surface-inverse,#000000)]":"border-[var(--color-border-muted,#a1a1aa)] bg-transparent","\n "),children:n?(0,t.jsx)(S.A,{size:8,strokeWidth:3.5}):null}),(0,t.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,t.jsx)("span",{className:"block font-mono text-[10px] font-bold uppercase tracking-widest leading-none",children:e.label}),e.description?(0,t.jsx)("span",{id:c,className:"mt-1 block font-mono text-[10px] leading-tight text-[var(--color-text-muted,#71717a)] dark:text-[var(--color-text-muted-inverse,#a1a1aa)]",children:e.description}):null]}),e.onQuickAction?(0,t.jsx)("button",{type:"button","data-testid":"item-picker-quick-action-".concat(e.value),"aria-label":e.quickActionLabel||"Quick create ".concat(e.label),onClick:a=>{var r;a.stopPropagation(),null==(r=e.onQuickAction)||r.call(e)},disabled:l,className:"shrink-0 inline-flex h-5 w-5 items-center justify-center border border-[var(--color-border,#d4d4d8)] font-mono text-[10px] leading-none text-[var(--color-text-muted,#71717a)] opacity-0 transition-opacity group-hover:opacity-100 focus:opacity-100 group-focus-within:opacity-100 hover:text-[var(--color-text,#0a0a0a)]",children:"+"}):null,e.icon?(0,t.jsx)("span",{className:"shrink-0 ".concat(n?"text-[var(--color-text,#0a0a0a)] dark:text-[var(--color-text-inverse,#ffffff)]":"text-[var(--color-text-muted,#71717a)] group-hover:text-[var(--color-text,#0a0a0a)] dark:text-[var(--color-text-muted-inverse,#a1a1aa)] dark:group-hover:text-[var(--color-text-inverse,#ffffff)]"),children:e.icon}):null]},e.value)})]})},F=e=>{let{title:a,icon:r,isOpen:o,onToggle:s,children:n,tone:l="default",className:c="",headerClassName:d="",contentClassName:f=""}=e,v="warning"===l?"text-[var(--color-warning)]":"text-[var(--color-text-muted)]";return(0,t.jsxs)("div",{className:"bg-[var(--color-surface)] border-mech clip-specimen-sm shadow-mech !rounded-none ".concat(c),children:[(0,t.jsxs)("button",{type:"button",onClick:s,className:"w-full flex items-center justify-between px-4 py-3 bg-transparent hover:bg-[var(--color-background-alt,#f4f4f5)] transition-colors ".concat(d),children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[r?(0,t.jsx)("span",{className:v,children:r}):null,(0,t.jsx)("span",{className:"font-mono text-[9px] font-semibold tracking-widest uppercase ".concat(v),children:a})]}),(0,t.jsx)(i.A,{size:12,className:"".concat(v," transition-transform flex-shrink-0 ml-2 ").concat(o?"rotate-180":"")})]}),o&&(0,t.jsx)("div",{className:f,children:n})]})}}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3826],{35299:(e,t,n)=>{n.d(t,{A:()=>a});let a=(0,n(71847).A)("LoaderCircle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]])},43826:(e,t,n)=>{n.r(t),n.d(t,{default:()=>u});var a=n(95155),r=n(12115),o=n(16140),s=n(35299),l=n(54901),c=n(62520),i=n(90960);function u(e){let{config:t}=e,n=null==t?void 0:t.appPath,u=null==t?void 0:t._refreshKey,p=(0,r.useRef)(null),[d,f]=(0,r.useState)(null),[m,x]=(0,r.useState)(!1),[h,b]=(0,r.useState)(null),[v,y]=(0,r.useState)(!1),[g,_]=(0,r.useState)(!1),[w,A]=(0,r.useState)(null),[P,j]=(0,r.useState)(!1),[E,N]=(0,r.useState)(null),[k,I]=(0,r.useState)(0),{token:S}=(0,l.A)(),{subscribe:O}=(0,c.h)(),R=(0,r.useRef)(new Map),T=(0,r.useCallback)((e,t)=>{var n,a;null==(a=p.current)||null==(n=a.contentWindow)||n.postMessage({type:"app:data",channel:e,data:t},"*")},[]);(0,r.useEffect)(()=>{if(n)return O("app:emit",e=>{let t=e.data;(null==t?void 0:t.strategyId)===n&&(null==t?void 0:t.channel)&&T(t.channel,t.data)})},[n,O,T]),(0,r.useEffect)(()=>{if(n)return O("strategy:tick",e=>{let t=e.data;if((null==t?void 0:t.strategyId)===n&&(null==t?void 0:t.state)){var a,r;null==(r=p.current)||null==(a=r.contentWindow)||a.postMessage({type:"strategy:state",state:t.state},"*")}})},[n,O]);let D=(0,r.useCallback)(e=>{let t=e.data;if(!t||!t.type)return;let n=p.current;if(n&&e.source===n.contentWindow){if("app:open-url"===t.type&&"string"==typeof t.url)return void window.open(t.url,"_blank","noopener");if("app:subscribe"===t.type&&"string"==typeof t.channel){let e=t.channel;if(R.current.has(e))return;let n=O(e,t=>{T(e,t.data)});R.current.set(e,n)}}},[O,T]);(0,r.useEffect)(()=>(window.addEventListener("message",D),()=>window.removeEventListener("message",D)),[D]),(0,r.useEffect)(()=>{let e=R.current;return()=>{for(let t of e.values())t();e.clear()}},[]),(0,r.useEffect)(()=>{if(!n)return;let e=!1,a=null;return x(!0),b(null),y(!1),A(null),j(!1),N(null),(async()=>{let r=async()=>{if(!e){j(!0);try{let t=await fetch("/api/apps/manifests");if(!t.ok)return;let a=await t.json();if(!a.success||!Array.isArray(a.manifests)||e)return;let r=a.manifests.find(e=>e.id===n);if(!r)return;let o=Array.isArray(r.permissions)?r.permissions.filter(e=>"string"==typeof e):[];N({id:r.id,name:r.name||r.id,permissions:o})}catch(e){}finally{e||j(!1)}}};try{var o;let s,l=await fetch("/api/apps/static/".concat(n,"/index.html")),c=l.ok?await l.text():function(e){let t=e.replace(/</g,"<").replace(/>/g,">");return'<body>\n <div style="display:flex;flex-direction:column;align-items:center;justify-content:center;\n height:100vh;font-family:ui-monospace,monospace;color:var(--color-text-muted,#6b7280);">\n <div style="font-size:10px;letter-spacing:0.1em;text-transform:uppercase;">'.concat(t,'</div>\n <div style="font-size:8px;margin-top:4px;opacity:0.6;">HEADLESS APP — NO UI</div>\n </div>\n</body>')}((null==t?void 0:t.appName)||n);try{s=await i.FH.get(i.jI.Wallet,"/apps/".concat(n,"/token"))}catch(a){let t=a.status,n=a instanceof Error?a.message:"Failed to fetch app token";if(404===t||n.includes("No token for app")){e||(y(!0),f(null),r());return}throw a}if(e)return;let u=null!=(o=s.token)?o:null;if(!s.success||!u){y(!0),f(null),r();return}let p=function(){let e=[],t=getComputedStyle(document.documentElement);for(let n of["--color-background","--color-background-alt","--color-surface","--color-surface-alt","--color-text","--color-text-muted","--color-text-faint","--color-border","--color-border-muted","--color-border-focus","--color-accent","--color-info","--color-success","--color-warning"]){let a=t.getPropertyValue(n).trim();a&&e.push("".concat(n,": ").concat(a,";"))}return":root { ".concat(e.join(" ")," }")}(),d=function(e,t,n,a){let r=new DOMParser().parseFromString(e,"text/html"),o=[];r.querySelectorAll("style").forEach(e=>{o.push(e.textContent||"")});let s=[];r.querySelectorAll("script").forEach(e=>{!e.src&&e.textContent&&s.push(e.textContent.replace(/<\/script/gi,"<\\/script"))}),r.querySelectorAll("script").forEach(e=>e.remove());let l=r.body.innerHTML,c=a?a.replace(/\\/g,"\\\\").replace(/"/g,'\\"'):"";return'<!DOCTYPE html>\n<html>\n<head>\n<meta charset="utf-8">\n<meta name="viewport" content="width=device-width, initial-scale=1">\n<style>'.concat(t,"</style>\n<style>\n * { margin: 0; padding: 0; box-sizing: border-box; }\n body { font-family: ui-monospace, monospace; overflow: auto; background: var(--color-surface, #fff); color: var(--color-text, #0a0a0a); }\n</style>\n").concat(o.map(e=>"<style>".concat(e,"</style>")).join("\n"),'\n<script>\nwindow.__AURA_TOKEN__ = "').concat(c,'";\nwindow.__AURA_API_BASE__ = "').concat(i.FH.getBaseUrl(i.jI.Wallet),'";\nwindow.__AURA_APP_ID__ = "').concat(n,'";\n<\/script>\n<script>').concat("\n(function() {\n var _callbacks = {};\n var _subscriptions = {};\n var _requestId = 0;\n\n var TOKEN = window.__AURA_TOKEN__ || '';\n var API_BASE = window.__AURA_API_BASE__ || 'http://127.0.0.1:4242';\n var APP_ID = window.__AURA_APP_ID__ || '';\n\n function generateId() {\n return 'req_' + (++_requestId) + '_' + Date.now();\n }\n\n function postToHost(msg) {\n window.parent.postMessage(msg, '*');\n }\n\n function request(type, payload) {\n return new Promise(function(resolve, reject) {\n var id = generateId();\n _callbacks[id] = { resolve: resolve, reject: reject };\n postToHost({ type: type, id: id, payload: payload });\n // Timeout after 30s\n setTimeout(function() {\n if (_callbacks[id]) {\n delete _callbacks[id];\n reject(new Error('Request timed out'));\n }\n }, 30000);\n });\n }\n\n /** Direct fetch to wallet API with Bearer token */\n function apiFetch(method, path, body) {\n var opts = {\n method: method,\n headers: { 'Content-Type': 'application/json' }\n };\n if (TOKEN) {\n opts.headers['Authorization'] = 'Bearer ' + TOKEN;\n }\n if (body !== undefined) {\n opts.body = JSON.stringify(body);\n }\n return fetch(API_BASE + path, opts).then(function(res) {\n return res.json().then(function(data) {\n if (!res.ok) throw new Error(data.error || 'API error ' + res.status);\n return data;\n });\n });\n }\n\n // Listen for messages from host bridge\n window.addEventListener('message', function(event) {\n var msg = event.data;\n if (!msg || !msg.type) return;\n\n // Response to a request\n if (msg.type === 'app:response' && msg.id && _callbacks[msg.id]) {\n var cb = _callbacks[msg.id];\n delete _callbacks[msg.id];\n if (msg.error) {\n cb.reject(new Error(msg.error));\n } else {\n cb.resolve(msg.data);\n }\n return;\n }\n\n // Data push from subscribed channel\n if (msg.type === 'app:data' && msg.channel && _subscriptions[msg.channel]) {\n _subscriptions[msg.channel].forEach(function(fn) {\n try { fn(msg.data); } catch(e) { console.error('Subscription callback error:', e); }\n });\n }\n });\n\n window.AuraApp = {\n send: function(message) {\n return apiFetch('POST', '/apps/' + APP_ID + '/message', { message: message })\n .then(function(data) { return data.reply; });\n },\n\n on: function(channel, callback) {\n if (!_subscriptions[channel]) {\n _subscriptions[channel] = [];\n postToHost({ type: 'app:subscribe', channel: channel });\n }\n _subscriptions[channel].push(callback);\n // Return unsubscribe function\n return function() {\n var subs = _subscriptions[channel];\n if (subs) {\n var idx = subs.indexOf(callback);\n if (idx !== -1) subs.splice(idx, 1);\n }\n };\n },\n\n fetch: function(url, options) {\n return apiFetch('POST', '/apps/' + APP_ID + '/fetch', {\n url: url,\n method: (options && options.method) || 'GET',\n headers: options && options.headers,\n body: options && options.body\n }).then(function(res) { return res.data; });\n },\n\n action: function(params) {\n return apiFetch('POST', '/actions', params);\n },\n\n storage: {\n get: function(key) {\n return apiFetch('GET', '/apps/' + APP_ID + '/storage/' + encodeURIComponent(key))\n .then(function(data) { return data.value; })\n .catch(function(err) {\n // 404 = key not found, return null\n if (err.message && err.message.indexOf('not found') !== -1) return null;\n throw err;\n });\n },\n set: function(key, value) {\n return apiFetch('PUT', '/apps/' + APP_ID + '/storage/' + encodeURIComponent(key), { value: value })\n .then(function(data) { return data.value; });\n },\n delete: function(key) {\n return apiFetch('DELETE', '/apps/' + APP_ID + '/storage/' + encodeURIComponent(key))\n .then(function() { return true; })\n .catch(function(err) {\n if (err.message && err.message.indexOf('not found') !== -1) return false;\n throw err;\n });\n }\n }\n };\n})();\n","<\/script>\n</head>\n<body>\n").concat(l,"\n").concat(s.map(e=>"<script>".concat(e,"<\/script>")).join("\n"),"\n</body>\n</html>")}(c,p,n,u),m=new Blob([d],{type:"text/html"});a=URL.createObjectURL(m),f(a)}catch(t){e||(f(null),b(t instanceof Error?t.message:"Failed to load app"))}finally{e||x(!1)}})(),()=>{e=!0,a&&URL.revokeObjectURL(a)}},[n,u,S,k]);let U=(0,r.useCallback)(async()=>{if(n){_(!0),A(null);try{await i.FH.post(i.jI.Wallet,"/apps/".concat(n,"/approve")),y(!1),I(e=>e+1)}catch(e){A(e instanceof Error?e.message:"Failed to approve app")}finally{_(!1)}}},[n]);return n?m?(0,a.jsxs)("div",{className:"flex flex-col items-center justify-center h-full min-h-[100px]",children:[(0,a.jsx)(s.A,{size:20,className:"animate-spin text-[var(--color-text-faint,#9ca3af)] mb-2"}),(0,a.jsx)("span",{className:"font-mono text-[9px] text-[var(--color-text-muted,#6b7280)]",children:"LOADING APP..."})]}):v?(0,a.jsxs)("div",{className:"flex flex-col items-center justify-center h-full min-h-[100px] p-4",children:[(0,a.jsx)(o.A,{size:20,className:"mb-2 text-[var(--color-text-muted,#6b7280)]"}),(0,a.jsx)("span",{className:"font-mono text-[9px] text-[var(--color-text,#0a0a0a)]",children:"APP APPROVAL REQUIRED"}),(0,a.jsx)("span",{className:"font-mono text-[8px] text-[var(--color-text-muted,#6b7280)] mt-1 text-center",children:"This app needs approval before it can run."}),(0,a.jsxs)("div",{className:"w-full max-w-[280px] mt-3 px-2 py-2 border border-[var(--color-border,#d4d4d8)] bg-[var(--color-background-alt,#f4f4f5)]",children:[(0,a.jsx)("div",{className:"font-mono text-[8px] text-[var(--color-text-muted,#6b7280)]",children:"REQUESTED PERMISSIONS"}),P?(0,a.jsxs)("div",{className:"flex items-center gap-1 mt-1",children:[(0,a.jsx)(s.A,{size:10,className:"animate-spin text-[var(--color-text-faint,#9ca3af)]"}),(0,a.jsx)("span",{className:"font-mono text-[8px] text-[var(--color-text-muted,#6b7280)]",children:"Loading details..."})]}):(null==E?void 0:E.permissions.length)?(0,a.jsx)("div",{className:"mt-1 flex flex-wrap gap-1",children:E.permissions.map(e=>(0,a.jsx)("span",{className:"px-1.5 py-0.5 border border-[var(--color-border,#d4d4d8)] font-mono text-[8px] text-[var(--color-text,#0a0a0a)]",children:e},e))}):(0,a.jsx)("span",{className:"font-mono text-[8px] text-[var(--color-text-muted,#6b7280)]",children:"No explicit permissions listed."})]}),(0,a.jsx)("button",{onClick:()=>void U(),disabled:g,className:"mt-3 px-3 py-2 border border-[var(--color-border,#d4d4d8)] bg-[var(--color-surface,#ffffff)] font-mono text-[9px] tracking-widest text-[var(--color-text,#0a0a0a)] hover:border-[var(--color-border-focus,#0a0a0a)] disabled:opacity-50 disabled:cursor-default",children:g?"APPROVING...":"APPROVE"}),w&&(0,a.jsx)("span",{className:"font-mono text-[8px] text-[var(--color-warning,#ff4d00)] mt-2 text-center",children:w})]}):h?(0,a.jsxs)("div",{className:"flex flex-col items-center justify-center h-full min-h-[100px] p-4",children:[(0,a.jsx)(o.A,{size:20,className:"mb-2 text-[var(--color-warning,#ff4d00)]"}),(0,a.jsx)("span",{className:"font-mono text-[9px] text-[var(--color-warning,#ff4d00)]",children:"FAILED TO LOAD APP"}),(0,a.jsx)("span",{className:"font-mono text-[8px] text-[var(--color-text-muted,#6b7280)] mt-1 text-center",children:h})]}):d?(0,a.jsx)("div",{className:"relative h-full min-h-[100px]",children:(0,a.jsx)("iframe",{ref:p,src:d,sandbox:"allow-scripts allow-popups allow-popups-outside-sandbox",title:(null==t?void 0:t.appName)||n,className:"w-full h-full border-0",style:{minHeight:"100px"}})}):null:(0,a.jsxs)("div",{className:"flex flex-col items-center justify-center h-full min-h-[100px] text-[var(--color-text-muted,#6b7280)]",children:[(0,a.jsx)(o.A,{size:24,className:"mb-2"}),(0,a.jsx)("span",{className:"font-mono text-xs",children:"NO APP CONFIGURED"}),(0,a.jsx)("span",{className:"font-mono text-[9px] text-[var(--color-text-faint,#9ca3af)] mt-1",children:"Set config.appPath to load a app"})]})}}}]);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8956],{5223:(e,t,r)=>{r.d(t,{J3:()=>N,Ng:()=>t8,Sr:()=>ru});var i,s,n=r(1029),a=r(2671),o=r(786),c=r.n(o),l=r(5245),u=r.n(l),d=r(4755),h=r(5127),g=r(2339),p=r(8528),m=r(7175),f=r(8790),b=r.n(f),y=r(3316),w=r(9143),k=r(7390);a.ev.utils.randomPrivateKey;let S=()=>{let e=a.ev.utils.randomPrivateKey(),t=I(e),r=new Uint8Array(64);return r.set(e),r.set(t,32),{publicKey:t,secretKey:r}},I=a.ev.getPublicKey;function v(e){try{return a.ev.ExtendedPoint.fromHex(e),!0}catch{return!1}}let _=(e,t)=>a.ev.sign(e,t.slice(0,32)),A=a.ev.verify,W=e=>n.Buffer.isBuffer(e)?e:e instanceof Uint8Array?n.Buffer.from(e.buffer,e.byteOffset,e.byteLength):n.Buffer.from(e);class B{constructor(e){Object.assign(this,e)}encode(){return n.Buffer.from((0,h.serialize)(x,this))}static decode(e){return(0,h.deserialize)(x,this,e)}static decodeUnchecked(e){return(0,h.deserializeUnchecked)(x,this,e)}}let x=new Map,P=1;class N extends B{constructor(e){if(super({}),this._bn=void 0,void 0!==e._bn)this._bn=e._bn;else{if("string"==typeof e){let t=u().decode(e);if(32!=t.length)throw Error("Invalid public key input");this._bn=new(c())(t)}else this._bn=new(c())(e);if(this._bn.byteLength()>32)throw Error("Invalid public key input")}}static unique(){let e=new N(P);return P+=1,new N(e.toBuffer())}equals(e){return this._bn.eq(e._bn)}toBase58(){return u().encode(this.toBytes())}toJSON(){return this.toBase58()}toBytes(){let e=this.toBuffer();return new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}toBuffer(){let e=this._bn.toArrayLike(n.Buffer);if(32===e.length)return e;let t=n.Buffer.alloc(32);return e.copy(t,32-e.length),t}get[Symbol.toStringTag](){return`PublicKey(${this.toString()})`}toString(){return this.toBase58()}static async createWithSeed(e,t,r){let i=n.Buffer.concat([e.toBuffer(),n.Buffer.from(t),r.toBuffer()]);return new N((0,d.sc)(i))}static createProgramAddressSync(e,t){let r=n.Buffer.alloc(0);e.forEach(function(e){if(e.length>32)throw TypeError("Max seed length exceeded");r=n.Buffer.concat([r,W(e)])}),r=n.Buffer.concat([r,t.toBuffer(),n.Buffer.from("ProgramDerivedAddress")]);let i=(0,d.sc)(r);if(v(i))throw Error("Invalid seeds, address must fall off the curve");return new N(i)}static async createProgramAddress(e,t){return this.createProgramAddressSync(e,t)}static findProgramAddressSync(e,t){let r,i=255;for(;0!=i;){try{let s=e.concat(n.Buffer.from([i]));r=this.createProgramAddressSync(s,t)}catch(e){if(e instanceof TypeError)throw e;i--;continue}return[r,i]}throw Error("Unable to find a viable program address nonce")}static async findProgramAddress(e,t){return this.findProgramAddressSync(e,t)}static isOnCurve(e){return v(new N(e).toBytes())}}N.default=new N("11111111111111111111111111111111"),x.set(N,{kind:"struct",fields:[["_bn","u256"]]}),new N("BPFLoader1111111111111111111111111111111111");class E extends Error{constructor(e){super(`Signature ${e} has expired: block height exceeded.`),this.signature=void 0,this.signature=e}}Object.defineProperty(E.prototype,"name",{value:"TransactionExpiredBlockheightExceededError"});class C extends Error{constructor(e,t){super(`Transaction was not confirmed in ${t.toFixed(2)} seconds. It is unknown if it succeeded or failed. Check signature ${e} using the Solana Explorer or CLI tools.`),this.signature=void 0,this.signature=e}}Object.defineProperty(C.prototype,"name",{value:"TransactionExpiredTimeoutError"});class T extends Error{constructor(e){super(`Signature ${e} has expired: the nonce is no longer valid.`),this.signature=void 0,this.signature=e}}Object.defineProperty(T.prototype,"name",{value:"TransactionExpiredNonceInvalidError"});class O{constructor(e,t){this.staticAccountKeys=void 0,this.accountKeysFromLookups=void 0,this.staticAccountKeys=e,this.accountKeysFromLookups=t}keySegments(){let e=[this.staticAccountKeys];return this.accountKeysFromLookups&&(e.push(this.accountKeysFromLookups.writable),e.push(this.accountKeysFromLookups.readonly)),e}get(e){for(let t of this.keySegments())if(e<t.length)return t[e];else e-=t.length}get length(){return this.keySegments().flat().length}compileInstructions(e){if(this.length>256)throw Error("Account index overflow encountered during compilation");let t=new Map;this.keySegments().flat().forEach((e,r)=>{t.set(e.toBase58(),r)});let r=e=>{let r=t.get(e.toBase58());if(void 0===r)throw Error("Encountered an unknown instruction account key during compilation");return r};return e.map(e=>({programIdIndex:r(e.programId),accountKeyIndexes:e.keys.map(e=>r(e.pubkey)),data:e.data}))}}let L=(e="publicKey")=>g.av(32,e),Y=(e="string")=>{let t=g.w3([g.DH("length"),g.DH("lengthPadding"),g.av(g.cY(g.DH(),-8),"chars")],e),r=t.decode.bind(t),i=t.encode.bind(t);return t.decode=(e,t)=>r(e,t).chars.toString(),t.encode=(e,t,r)=>i({chars:n.Buffer.from(e,"utf8")},t,r),t.alloc=e=>g.DH().span+g.DH().span+n.Buffer.from(e,"utf8").length,t};function q(e){let t=0,r=0;for(;;){let i=e.shift();if(t|=(127&i)<<7*r,r+=1,(128&i)==0)break}return t}function z(e,t){let r=t;for(;;){let t=127&r;if(0==(r>>=7)){e.push(t);break}t|=128,e.push(t)}}function R(e,t){if(!e)throw Error(t||"Assertion failed")}class K{constructor(e,t){this.payer=void 0,this.keyMetaMap=void 0,this.payer=e,this.keyMetaMap=t}static compile(e,t){let r=new Map,i=e=>{let t=e.toBase58(),i=r.get(t);return void 0===i&&(i={isSigner:!1,isWritable:!1,isInvoked:!1},r.set(t,i)),i},s=i(t);for(let t of(s.isSigner=!0,s.isWritable=!0,e))for(let e of(i(t.programId).isInvoked=!0,t.keys)){let t=i(e.pubkey);t.isSigner||=e.isSigner,t.isWritable||=e.isWritable}return new K(t,r)}getMessageComponents(){let e=[...this.keyMetaMap.entries()];R(e.length<=256,"Max static account keys length exceeded");let t=e.filter(([,e])=>e.isSigner&&e.isWritable),r=e.filter(([,e])=>e.isSigner&&!e.isWritable),i=e.filter(([,e])=>!e.isSigner&&e.isWritable),s=e.filter(([,e])=>!e.isSigner&&!e.isWritable),n={numRequiredSignatures:t.length+r.length,numReadonlySignedAccounts:r.length,numReadonlyUnsignedAccounts:s.length};{R(t.length>0,"Expected at least one writable signer key");let[e]=t[0];R(e===this.payer.toBase58(),"Expected first writable signer key to be the fee payer")}return[n,[...t.map(([e])=>new N(e)),...r.map(([e])=>new N(e)),...i.map(([e])=>new N(e)),...s.map(([e])=>new N(e))]]}extractTableLookup(e){let[t,r]=this.drainKeysFoundInLookupTable(e.state.addresses,e=>!e.isSigner&&!e.isInvoked&&e.isWritable),[i,s]=this.drainKeysFoundInLookupTable(e.state.addresses,e=>!e.isSigner&&!e.isInvoked&&!e.isWritable);if(0!==t.length||0!==i.length)return[{accountKey:e.key,writableIndexes:t,readonlyIndexes:i},{writable:r,readonly:s}]}drainKeysFoundInLookupTable(e,t){let r=[],i=[];for(let[s,n]of this.keyMetaMap.entries())if(t(n)){let t=new N(s),n=e.findIndex(e=>e.equals(t));n>=0&&(R(n<256,"Max lookup table index exceeded"),r.push(n),i.push(t),this.keyMetaMap.delete(s))}return[r,i]}}let j="Reached end of buffer unexpectedly";function H(e){if(0===e.length)throw Error(j);return e.shift()}function D(e,...t){let[r]=t;if(2===t.length?r+(t[1]??0)>e.length:r>=e.length)throw Error(j);return e.splice(...t)}class M{constructor(e){this.header=void 0,this.accountKeys=void 0,this.recentBlockhash=void 0,this.instructions=void 0,this.indexToProgramIds=new Map,this.header=e.header,this.accountKeys=e.accountKeys.map(e=>new N(e)),this.recentBlockhash=e.recentBlockhash,this.instructions=e.instructions,this.instructions.forEach(e=>this.indexToProgramIds.set(e.programIdIndex,this.accountKeys[e.programIdIndex]))}get version(){return"legacy"}get staticAccountKeys(){return this.accountKeys}get compiledInstructions(){return this.instructions.map(e=>({programIdIndex:e.programIdIndex,accountKeyIndexes:e.accounts,data:u().decode(e.data)}))}get addressTableLookups(){return[]}getAccountKeys(){return new O(this.staticAccountKeys)}static compile(e){let[t,r]=K.compile(e.instructions,e.payerKey).getMessageComponents(),i=new O(r).compileInstructions(e.instructions).map(e=>({programIdIndex:e.programIdIndex,accounts:e.accountKeyIndexes,data:u().encode(e.data)}));return new M({header:t,accountKeys:r,recentBlockhash:e.recentBlockhash,instructions:i})}isAccountSigner(e){return e<this.header.numRequiredSignatures}isAccountWritable(e){let t=this.header.numRequiredSignatures;if(!(e>=this.header.numRequiredSignatures))return e<t-this.header.numReadonlySignedAccounts;{let r=this.accountKeys.length-t-this.header.numReadonlyUnsignedAccounts;return e-t<r}}isProgramId(e){return this.indexToProgramIds.has(e)}programIds(){return[...this.indexToProgramIds.values()]}nonProgramIds(){return this.accountKeys.filter((e,t)=>!this.isProgramId(t))}serialize(){let e=this.accountKeys.length,t=[];z(t,e);let r=this.instructions.map(e=>{let{accounts:t,programIdIndex:r}=e,i=Array.from(u().decode(e.data)),s=[];z(s,t.length);let a=[];return z(a,i.length),{programIdIndex:r,keyIndicesCount:n.Buffer.from(s),keyIndices:t,dataLength:n.Buffer.from(a),data:i}}),i=[];z(i,r.length);let s=n.Buffer.alloc(1232);n.Buffer.from(i).copy(s);let a=i.length;r.forEach(e=>{let t=g.w3([g.u8("programIdIndex"),g.av(e.keyIndicesCount.length,"keyIndicesCount"),g.O6(g.u8("keyIndex"),e.keyIndices.length,"keyIndices"),g.av(e.dataLength.length,"dataLength"),g.O6(g.u8("userdatum"),e.data.length,"data")]).encode(e,s,a);a+=t}),s=s.slice(0,a);let o=g.w3([g.av(1,"numRequiredSignatures"),g.av(1,"numReadonlySignedAccounts"),g.av(1,"numReadonlyUnsignedAccounts"),g.av(t.length,"keyCount"),g.O6(L("key"),e,"keys"),L("recentBlockhash")]),c={numRequiredSignatures:n.Buffer.from([this.header.numRequiredSignatures]),numReadonlySignedAccounts:n.Buffer.from([this.header.numReadonlySignedAccounts]),numReadonlyUnsignedAccounts:n.Buffer.from([this.header.numReadonlyUnsignedAccounts]),keyCount:n.Buffer.from(t),keys:this.accountKeys.map(e=>W(e.toBytes())),recentBlockhash:u().decode(this.recentBlockhash)},l=n.Buffer.alloc(2048),d=o.encode(c,l);return s.copy(l,d),l.slice(0,d+s.length)}static from(e){let t=[...e],r=H(t);if(r!==(127&r))throw Error("Versioned messages must be deserialized with VersionedMessage.deserialize()");let i=H(t),s=H(t),a=q(t),o=[];for(let e=0;e<a;e++){let e=D(t,0,32);o.push(new N(n.Buffer.from(e)))}let c=D(t,0,32),l=q(t),d=[];for(let e=0;e<l;e++){let e=H(t),r=q(t),i=D(t,0,r),s=q(t),a=D(t,0,s),o=u().encode(n.Buffer.from(a));d.push({programIdIndex:e,accounts:i,data:o})}return new M({header:{numRequiredSignatures:r,numReadonlySignedAccounts:i,numReadonlyUnsignedAccounts:s},recentBlockhash:u().encode(n.Buffer.from(c)),accountKeys:o,instructions:d})}}class U{constructor(e){this.header=void 0,this.staticAccountKeys=void 0,this.recentBlockhash=void 0,this.compiledInstructions=void 0,this.addressTableLookups=void 0,this.header=e.header,this.staticAccountKeys=e.staticAccountKeys,this.recentBlockhash=e.recentBlockhash,this.compiledInstructions=e.compiledInstructions,this.addressTableLookups=e.addressTableLookups}get version(){return 0}get numAccountKeysFromLookups(){let e=0;for(let t of this.addressTableLookups)e+=t.readonlyIndexes.length+t.writableIndexes.length;return e}getAccountKeys(e){let t;if(e&&"accountKeysFromLookups"in e&&e.accountKeysFromLookups){if(this.numAccountKeysFromLookups!=e.accountKeysFromLookups.writable.length+e.accountKeysFromLookups.readonly.length)throw Error("Failed to get account keys because of a mismatch in the number of account keys from lookups");t=e.accountKeysFromLookups}else if(e&&"addressLookupTableAccounts"in e&&e.addressLookupTableAccounts)t=this.resolveAddressTableLookups(e.addressLookupTableAccounts);else if(this.addressTableLookups.length>0)throw Error("Failed to get account keys because address table lookups were not resolved");return new O(this.staticAccountKeys,t)}isAccountSigner(e){return e<this.header.numRequiredSignatures}isAccountWritable(e){let t=this.header.numRequiredSignatures,r=this.staticAccountKeys.length;if(e>=r)return e-r<this.addressTableLookups.reduce((e,t)=>e+t.writableIndexes.length,0);if(!(e>=this.header.numRequiredSignatures))return e<t-this.header.numReadonlySignedAccounts;{let i=r-t-this.header.numReadonlyUnsignedAccounts;return e-t<i}}resolveAddressTableLookups(e){let t={writable:[],readonly:[]};for(let r of this.addressTableLookups){let i=e.find(e=>e.key.equals(r.accountKey));if(!i)throw Error(`Failed to find address lookup table account for table key ${r.accountKey.toBase58()}`);for(let e of r.writableIndexes)if(e<i.state.addresses.length)t.writable.push(i.state.addresses[e]);else throw Error(`Failed to find address for index ${e} in address lookup table ${r.accountKey.toBase58()}`);for(let e of r.readonlyIndexes)if(e<i.state.addresses.length)t.readonly.push(i.state.addresses[e]);else throw Error(`Failed to find address for index ${e} in address lookup table ${r.accountKey.toBase58()}`)}return t}static compile(e){let t=K.compile(e.instructions,e.payerKey),r=[],i={writable:[],readonly:[]};for(let s of e.addressLookupTableAccounts||[]){let e=t.extractTableLookup(s);if(void 0!==e){let[t,{writable:s,readonly:n}]=e;r.push(t),i.writable.push(...s),i.readonly.push(...n)}}let[s,n]=t.getMessageComponents(),a=new O(n,i).compileInstructions(e.instructions);return new U({header:s,staticAccountKeys:n,recentBlockhash:e.recentBlockhash,compiledInstructions:a,addressTableLookups:r})}serialize(){let e=[];z(e,this.staticAccountKeys.length);let t=this.serializeInstructions(),r=[];z(r,this.compiledInstructions.length);let i=this.serializeAddressTableLookups(),s=[];z(s,this.addressTableLookups.length);let n=g.w3([g.u8("prefix"),g.w3([g.u8("numRequiredSignatures"),g.u8("numReadonlySignedAccounts"),g.u8("numReadonlyUnsignedAccounts")],"header"),g.av(e.length,"staticAccountKeysLength"),g.O6(L(),this.staticAccountKeys.length,"staticAccountKeys"),L("recentBlockhash"),g.av(r.length,"instructionsLength"),g.av(t.length,"serializedInstructions"),g.av(s.length,"addressTableLookupsLength"),g.av(i.length,"serializedAddressTableLookups")]),a=new Uint8Array(1232),o=n.encode({prefix:128,header:this.header,staticAccountKeysLength:new Uint8Array(e),staticAccountKeys:this.staticAccountKeys.map(e=>e.toBytes()),recentBlockhash:u().decode(this.recentBlockhash),instructionsLength:new Uint8Array(r),serializedInstructions:t,addressTableLookupsLength:new Uint8Array(s),serializedAddressTableLookups:i},a);return a.slice(0,o)}serializeInstructions(){let e=0,t=new Uint8Array(1232);for(let r of this.compiledInstructions){let i=[];z(i,r.accountKeyIndexes.length);let s=[];z(s,r.data.length);let n=g.w3([g.u8("programIdIndex"),g.av(i.length,"encodedAccountKeyIndexesLength"),g.O6(g.u8(),r.accountKeyIndexes.length,"accountKeyIndexes"),g.av(s.length,"encodedDataLength"),g.av(r.data.length,"data")]);e+=n.encode({programIdIndex:r.programIdIndex,encodedAccountKeyIndexesLength:new Uint8Array(i),accountKeyIndexes:r.accountKeyIndexes,encodedDataLength:new Uint8Array(s),data:r.data},t,e)}return t.slice(0,e)}serializeAddressTableLookups(){let e=0,t=new Uint8Array(1232);for(let r of this.addressTableLookups){let i=[];z(i,r.writableIndexes.length);let s=[];z(s,r.readonlyIndexes.length);let n=g.w3([L("accountKey"),g.av(i.length,"encodedWritableIndexesLength"),g.O6(g.u8(),r.writableIndexes.length,"writableIndexes"),g.av(s.length,"encodedReadonlyIndexesLength"),g.O6(g.u8(),r.readonlyIndexes.length,"readonlyIndexes")]);e+=n.encode({accountKey:r.accountKey.toBytes(),encodedWritableIndexesLength:new Uint8Array(i),writableIndexes:r.writableIndexes,encodedReadonlyIndexesLength:new Uint8Array(s),readonlyIndexes:r.readonlyIndexes},t,e)}return t.slice(0,e)}static deserialize(e){let t=[...e],r=H(t),i=127&r;R(r!==i,"Expected versioned message but received legacy message"),R(0===i,`Expected versioned message with version 0 but found version ${i}`);let s={numRequiredSignatures:H(t),numReadonlySignedAccounts:H(t),numReadonlyUnsignedAccounts:H(t)},n=[],a=q(t);for(let e=0;e<a;e++)n.push(new N(D(t,0,32)));let o=u().encode(D(t,0,32)),c=q(t),l=[];for(let e=0;e<c;e++){let e=H(t),r=q(t),i=D(t,0,r),s=q(t),n=new Uint8Array(D(t,0,s));l.push({programIdIndex:e,accountKeyIndexes:i,data:n})}let d=q(t),h=[];for(let e=0;e<d;e++){let e=new N(D(t,0,32)),r=q(t),i=D(t,0,r),s=q(t),n=D(t,0,s);h.push({accountKey:e,writableIndexes:i,readonlyIndexes:n})}return new U({header:s,staticAccountKeys:n,recentBlockhash:o,compiledInstructions:l,addressTableLookups:h})}}let $=function(e){return e[e.BLOCKHEIGHT_EXCEEDED=0]="BLOCKHEIGHT_EXCEEDED",e[e.PROCESSED=1]="PROCESSED",e[e.TIMED_OUT=2]="TIMED_OUT",e[e.NONCE_INVALID=3]="NONCE_INVALID",e}({}),F=n.Buffer.alloc(64).fill(0);class V{constructor(e){this.keys=void 0,this.programId=void 0,this.data=n.Buffer.alloc(0),this.programId=e.programId,this.keys=e.keys,e.data&&(this.data=e.data)}toJSON(){return{keys:this.keys.map(({pubkey:e,isSigner:t,isWritable:r})=>({pubkey:e.toJSON(),isSigner:t,isWritable:r})),programId:this.programId.toJSON(),data:[...this.data]}}}class J{get signature(){return this.signatures.length>0?this.signatures[0].signature:null}constructor(e){if(this.signatures=[],this.feePayer=void 0,this.instructions=[],this.recentBlockhash=void 0,this.lastValidBlockHeight=void 0,this.nonceInfo=void 0,this.minNonceContextSlot=void 0,this._message=void 0,this._json=void 0,!e)return;if(e.feePayer&&(this.feePayer=e.feePayer),e.signatures&&(this.signatures=e.signatures),Object.prototype.hasOwnProperty.call(e,"nonceInfo")){let{minContextSlot:t,nonceInfo:r}=e;this.minNonceContextSlot=t,this.nonceInfo=r}else if(Object.prototype.hasOwnProperty.call(e,"lastValidBlockHeight")){let{blockhash:t,lastValidBlockHeight:r}=e;this.recentBlockhash=t,this.lastValidBlockHeight=r}else{let{recentBlockhash:t,nonceInfo:r}=e;r&&(this.nonceInfo=r),this.recentBlockhash=t}}toJSON(){return{recentBlockhash:this.recentBlockhash||null,feePayer:this.feePayer?this.feePayer.toJSON():null,nonceInfo:this.nonceInfo?{nonce:this.nonceInfo.nonce,nonceInstruction:this.nonceInfo.nonceInstruction.toJSON()}:null,instructions:this.instructions.map(e=>e.toJSON()),signers:this.signatures.map(({publicKey:e})=>e.toJSON())}}add(...e){if(0===e.length)throw Error("No instructions");return e.forEach(e=>{"instructions"in e?this.instructions=this.instructions.concat(e.instructions):"data"in e&&"programId"in e&&"keys"in e?this.instructions.push(e):this.instructions.push(new V(e))}),this}compileMessage(){let e,t,r;if(this._message&&JSON.stringify(this.toJSON())===JSON.stringify(this._json))return this._message;if(this.nonceInfo?(e=this.nonceInfo.nonce,t=this.instructions[0]!=this.nonceInfo.nonceInstruction?[this.nonceInfo.nonceInstruction,...this.instructions]:this.instructions):(e=this.recentBlockhash,t=this.instructions),!e)throw Error("Transaction recentBlockhash required");if(t.length<1&&console.warn("No instructions provided"),this.feePayer)r=this.feePayer;else if(this.signatures.length>0&&this.signatures[0].publicKey)r=this.signatures[0].publicKey;else throw Error("Transaction fee payer required");for(let e=0;e<t.length;e++)if(void 0===t[e].programId)throw Error(`Transaction instruction index ${e} has undefined program id`);let i=[],s=[];t.forEach(e=>{e.keys.forEach(e=>{s.push({...e})});let t=e.programId.toString();i.includes(t)||i.push(t)}),i.forEach(e=>{s.push({pubkey:new N(e),isSigner:!1,isWritable:!1})});let n=[];s.forEach(e=>{let t=e.pubkey.toString(),r=n.findIndex(e=>e.pubkey.toString()===t);r>-1?(n[r].isWritable=n[r].isWritable||e.isWritable,n[r].isSigner=n[r].isSigner||e.isSigner):n.push(e)}),n.sort(function(e,t){return e.isSigner!==t.isSigner?e.isSigner?-1:1:e.isWritable!==t.isWritable?e.isWritable?-1:1:e.pubkey.toBase58().localeCompare(t.pubkey.toBase58(),"en",{localeMatcher:"best fit",usage:"sort",sensitivity:"variant",ignorePunctuation:!1,numeric:!1,caseFirst:"lower"})});let a=n.findIndex(e=>e.pubkey.equals(r));if(a>-1){let[e]=n.splice(a,1);e.isSigner=!0,e.isWritable=!0,n.unshift(e)}else n.unshift({pubkey:r,isSigner:!0,isWritable:!0});for(let e of this.signatures){let t=n.findIndex(t=>t.pubkey.equals(e.publicKey));if(t>-1)n[t].isSigner||(n[t].isSigner=!0,console.warn("Transaction references a signature that is unnecessary, only the fee payer and instruction signer accounts should sign a transaction. This behavior is deprecated and will throw an error in the next major version release."));else throw Error(`unknown signer: ${e.publicKey.toString()}`)}let o=0,c=0,l=0,d=[],h=[];n.forEach(({pubkey:e,isSigner:t,isWritable:r})=>{t?(d.push(e.toString()),o+=1,r||(c+=1)):(h.push(e.toString()),r||(l+=1))});let g=d.concat(h),p=t.map(e=>{let{data:t,programId:r}=e;return{programIdIndex:g.indexOf(r.toString()),accounts:e.keys.map(e=>g.indexOf(e.pubkey.toString())),data:u().encode(t)}});return p.forEach(e=>{R(e.programIdIndex>=0),e.accounts.forEach(e=>R(e>=0))}),new M({header:{numRequiredSignatures:o,numReadonlySignedAccounts:c,numReadonlyUnsignedAccounts:l},accountKeys:g,recentBlockhash:e,instructions:p})}_compile(){let e=this.compileMessage(),t=e.accountKeys.slice(0,e.header.numRequiredSignatures);return this.signatures.length===t.length&&this.signatures.every((e,r)=>t[r].equals(e.publicKey))?e:(this.signatures=t.map(e=>({signature:null,publicKey:e})),e)}serializeMessage(){return this._compile().serialize()}async getEstimatedFee(e){return(await e.getFeeForMessage(this.compileMessage())).value}setSigners(...e){if(0===e.length)throw Error("No signers");let t=new Set;this.signatures=e.filter(e=>{let r=e.toString();return!t.has(r)&&(t.add(r),!0)}).map(e=>({signature:null,publicKey:e}))}sign(...e){if(0===e.length)throw Error("No signers");let t=new Set,r=[];for(let i of e){let e=i.publicKey.toString();t.has(e)||(t.add(e),r.push(i))}this.signatures=r.map(e=>({signature:null,publicKey:e.publicKey}));let i=this._compile();this._partialSign(i,...r)}partialSign(...e){if(0===e.length)throw Error("No signers");let t=new Set,r=[];for(let i of e){let e=i.publicKey.toString();t.has(e)||(t.add(e),r.push(i))}let i=this._compile();this._partialSign(i,...r)}_partialSign(e,...t){let r=e.serialize();t.forEach(e=>{let t=_(r,e.secretKey);this._addSignature(e.publicKey,W(t))})}addSignature(e,t){this._compile(),this._addSignature(e,t)}_addSignature(e,t){R(64===t.length);let r=this.signatures.findIndex(t=>e.equals(t.publicKey));if(r<0)throw Error(`unknown signer: ${e.toString()}`);this.signatures[r].signature=n.Buffer.from(t)}verifySignatures(e=!0){return!this._getMessageSignednessErrors(this.serializeMessage(),e)}_getMessageSignednessErrors(e,t){let r={};for(let{signature:i,publicKey:s}of this.signatures)null===i?t&&(r.missing||=[]).push(s):A(i,e,s.toBytes())||(r.invalid||=[]).push(s);return r.invalid||r.missing?r:void 0}serialize(e){let{requireAllSignatures:t,verifySignatures:r}=Object.assign({requireAllSignatures:!0,verifySignatures:!0},e),i=this.serializeMessage();if(r){let e=this._getMessageSignednessErrors(i,t);if(e){let t="Signature verification failed.";throw e.invalid&&(t+=`
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8956],{25223:(e,t,r)=>{r.d(t,{J3:()=>N,Ng:()=>t8,Sr:()=>ru});var i,s,n=r(81029),a=r(32671),o=r(50786),c=r.n(o),l=r(75245),u=r.n(l),d=r(24755),h=r(5127),g=r(2339),p=r(68528),m=r(7175),f=r(88790),b=r.n(f),y=r(53316),w=r(29143),k=r(75009);a.ev.utils.randomPrivateKey;let S=()=>{let e=a.ev.utils.randomPrivateKey(),t=I(e),r=new Uint8Array(64);return r.set(e),r.set(t,32),{publicKey:t,secretKey:r}},I=a.ev.getPublicKey;function v(e){try{return a.ev.ExtendedPoint.fromHex(e),!0}catch{return!1}}let _=(e,t)=>a.ev.sign(e,t.slice(0,32)),A=a.ev.verify,W=e=>n.Buffer.isBuffer(e)?e:e instanceof Uint8Array?n.Buffer.from(e.buffer,e.byteOffset,e.byteLength):n.Buffer.from(e);class B{constructor(e){Object.assign(this,e)}encode(){return n.Buffer.from((0,h.serialize)(x,this))}static decode(e){return(0,h.deserialize)(x,this,e)}static decodeUnchecked(e){return(0,h.deserializeUnchecked)(x,this,e)}}let x=new Map,P=1;class N extends B{constructor(e){if(super({}),this._bn=void 0,void 0!==e._bn)this._bn=e._bn;else{if("string"==typeof e){let t=u().decode(e);if(32!=t.length)throw Error("Invalid public key input");this._bn=new(c())(t)}else this._bn=new(c())(e);if(this._bn.byteLength()>32)throw Error("Invalid public key input")}}static unique(){let e=new N(P);return P+=1,new N(e.toBuffer())}equals(e){return this._bn.eq(e._bn)}toBase58(){return u().encode(this.toBytes())}toJSON(){return this.toBase58()}toBytes(){let e=this.toBuffer();return new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}toBuffer(){let e=this._bn.toArrayLike(n.Buffer);if(32===e.length)return e;let t=n.Buffer.alloc(32);return e.copy(t,32-e.length),t}get[Symbol.toStringTag](){return`PublicKey(${this.toString()})`}toString(){return this.toBase58()}static async createWithSeed(e,t,r){let i=n.Buffer.concat([e.toBuffer(),n.Buffer.from(t),r.toBuffer()]);return new N((0,d.sc)(i))}static createProgramAddressSync(e,t){let r=n.Buffer.alloc(0);e.forEach(function(e){if(e.length>32)throw TypeError("Max seed length exceeded");r=n.Buffer.concat([r,W(e)])}),r=n.Buffer.concat([r,t.toBuffer(),n.Buffer.from("ProgramDerivedAddress")]);let i=(0,d.sc)(r);if(v(i))throw Error("Invalid seeds, address must fall off the curve");return new N(i)}static async createProgramAddress(e,t){return this.createProgramAddressSync(e,t)}static findProgramAddressSync(e,t){let r,i=255;for(;0!=i;){try{let s=e.concat(n.Buffer.from([i]));r=this.createProgramAddressSync(s,t)}catch(e){if(e instanceof TypeError)throw e;i--;continue}return[r,i]}throw Error("Unable to find a viable program address nonce")}static async findProgramAddress(e,t){return this.findProgramAddressSync(e,t)}static isOnCurve(e){return v(new N(e).toBytes())}}N.default=new N("11111111111111111111111111111111"),x.set(N,{kind:"struct",fields:[["_bn","u256"]]}),new N("BPFLoader1111111111111111111111111111111111");class E extends Error{constructor(e){super(`Signature ${e} has expired: block height exceeded.`),this.signature=void 0,this.signature=e}}Object.defineProperty(E.prototype,"name",{value:"TransactionExpiredBlockheightExceededError"});class C extends Error{constructor(e,t){super(`Transaction was not confirmed in ${t.toFixed(2)} seconds. It is unknown if it succeeded or failed. Check signature ${e} using the Solana Explorer or CLI tools.`),this.signature=void 0,this.signature=e}}Object.defineProperty(C.prototype,"name",{value:"TransactionExpiredTimeoutError"});class T extends Error{constructor(e){super(`Signature ${e} has expired: the nonce is no longer valid.`),this.signature=void 0,this.signature=e}}Object.defineProperty(T.prototype,"name",{value:"TransactionExpiredNonceInvalidError"});class O{constructor(e,t){this.staticAccountKeys=void 0,this.accountKeysFromLookups=void 0,this.staticAccountKeys=e,this.accountKeysFromLookups=t}keySegments(){let e=[this.staticAccountKeys];return this.accountKeysFromLookups&&(e.push(this.accountKeysFromLookups.writable),e.push(this.accountKeysFromLookups.readonly)),e}get(e){for(let t of this.keySegments())if(e<t.length)return t[e];else e-=t.length}get length(){return this.keySegments().flat().length}compileInstructions(e){if(this.length>256)throw Error("Account index overflow encountered during compilation");let t=new Map;this.keySegments().flat().forEach((e,r)=>{t.set(e.toBase58(),r)});let r=e=>{let r=t.get(e.toBase58());if(void 0===r)throw Error("Encountered an unknown instruction account key during compilation");return r};return e.map(e=>({programIdIndex:r(e.programId),accountKeyIndexes:e.keys.map(e=>r(e.pubkey)),data:e.data}))}}let L=(e="publicKey")=>g.av(32,e),Y=(e="string")=>{let t=g.w3([g.DH("length"),g.DH("lengthPadding"),g.av(g.cY(g.DH(),-8),"chars")],e),r=t.decode.bind(t),i=t.encode.bind(t);return t.decode=(e,t)=>r(e,t).chars.toString(),t.encode=(e,t,r)=>i({chars:n.Buffer.from(e,"utf8")},t,r),t.alloc=e=>g.DH().span+g.DH().span+n.Buffer.from(e,"utf8").length,t};function q(e){let t=0,r=0;for(;;){let i=e.shift();if(t|=(127&i)<<7*r,r+=1,(128&i)==0)break}return t}function z(e,t){let r=t;for(;;){let t=127&r;if(0==(r>>=7)){e.push(t);break}t|=128,e.push(t)}}function R(e,t){if(!e)throw Error(t||"Assertion failed")}class K{constructor(e,t){this.payer=void 0,this.keyMetaMap=void 0,this.payer=e,this.keyMetaMap=t}static compile(e,t){let r=new Map,i=e=>{let t=e.toBase58(),i=r.get(t);return void 0===i&&(i={isSigner:!1,isWritable:!1,isInvoked:!1},r.set(t,i)),i},s=i(t);for(let t of(s.isSigner=!0,s.isWritable=!0,e))for(let e of(i(t.programId).isInvoked=!0,t.keys)){let t=i(e.pubkey);t.isSigner||=e.isSigner,t.isWritable||=e.isWritable}return new K(t,r)}getMessageComponents(){let e=[...this.keyMetaMap.entries()];R(e.length<=256,"Max static account keys length exceeded");let t=e.filter(([,e])=>e.isSigner&&e.isWritable),r=e.filter(([,e])=>e.isSigner&&!e.isWritable),i=e.filter(([,e])=>!e.isSigner&&e.isWritable),s=e.filter(([,e])=>!e.isSigner&&!e.isWritable),n={numRequiredSignatures:t.length+r.length,numReadonlySignedAccounts:r.length,numReadonlyUnsignedAccounts:s.length};{R(t.length>0,"Expected at least one writable signer key");let[e]=t[0];R(e===this.payer.toBase58(),"Expected first writable signer key to be the fee payer")}return[n,[...t.map(([e])=>new N(e)),...r.map(([e])=>new N(e)),...i.map(([e])=>new N(e)),...s.map(([e])=>new N(e))]]}extractTableLookup(e){let[t,r]=this.drainKeysFoundInLookupTable(e.state.addresses,e=>!e.isSigner&&!e.isInvoked&&e.isWritable),[i,s]=this.drainKeysFoundInLookupTable(e.state.addresses,e=>!e.isSigner&&!e.isInvoked&&!e.isWritable);if(0!==t.length||0!==i.length)return[{accountKey:e.key,writableIndexes:t,readonlyIndexes:i},{writable:r,readonly:s}]}drainKeysFoundInLookupTable(e,t){let r=[],i=[];for(let[s,n]of this.keyMetaMap.entries())if(t(n)){let t=new N(s),n=e.findIndex(e=>e.equals(t));n>=0&&(R(n<256,"Max lookup table index exceeded"),r.push(n),i.push(t),this.keyMetaMap.delete(s))}return[r,i]}}let j="Reached end of buffer unexpectedly";function H(e){if(0===e.length)throw Error(j);return e.shift()}function D(e,...t){let[r]=t;if(2===t.length?r+(t[1]??0)>e.length:r>=e.length)throw Error(j);return e.splice(...t)}class M{constructor(e){this.header=void 0,this.accountKeys=void 0,this.recentBlockhash=void 0,this.instructions=void 0,this.indexToProgramIds=new Map,this.header=e.header,this.accountKeys=e.accountKeys.map(e=>new N(e)),this.recentBlockhash=e.recentBlockhash,this.instructions=e.instructions,this.instructions.forEach(e=>this.indexToProgramIds.set(e.programIdIndex,this.accountKeys[e.programIdIndex]))}get version(){return"legacy"}get staticAccountKeys(){return this.accountKeys}get compiledInstructions(){return this.instructions.map(e=>({programIdIndex:e.programIdIndex,accountKeyIndexes:e.accounts,data:u().decode(e.data)}))}get addressTableLookups(){return[]}getAccountKeys(){return new O(this.staticAccountKeys)}static compile(e){let[t,r]=K.compile(e.instructions,e.payerKey).getMessageComponents(),i=new O(r).compileInstructions(e.instructions).map(e=>({programIdIndex:e.programIdIndex,accounts:e.accountKeyIndexes,data:u().encode(e.data)}));return new M({header:t,accountKeys:r,recentBlockhash:e.recentBlockhash,instructions:i})}isAccountSigner(e){return e<this.header.numRequiredSignatures}isAccountWritable(e){let t=this.header.numRequiredSignatures;if(!(e>=this.header.numRequiredSignatures))return e<t-this.header.numReadonlySignedAccounts;{let r=this.accountKeys.length-t-this.header.numReadonlyUnsignedAccounts;return e-t<r}}isProgramId(e){return this.indexToProgramIds.has(e)}programIds(){return[...this.indexToProgramIds.values()]}nonProgramIds(){return this.accountKeys.filter((e,t)=>!this.isProgramId(t))}serialize(){let e=this.accountKeys.length,t=[];z(t,e);let r=this.instructions.map(e=>{let{accounts:t,programIdIndex:r}=e,i=Array.from(u().decode(e.data)),s=[];z(s,t.length);let a=[];return z(a,i.length),{programIdIndex:r,keyIndicesCount:n.Buffer.from(s),keyIndices:t,dataLength:n.Buffer.from(a),data:i}}),i=[];z(i,r.length);let s=n.Buffer.alloc(1232);n.Buffer.from(i).copy(s);let a=i.length;r.forEach(e=>{let t=g.w3([g.u8("programIdIndex"),g.av(e.keyIndicesCount.length,"keyIndicesCount"),g.O6(g.u8("keyIndex"),e.keyIndices.length,"keyIndices"),g.av(e.dataLength.length,"dataLength"),g.O6(g.u8("userdatum"),e.data.length,"data")]).encode(e,s,a);a+=t}),s=s.slice(0,a);let o=g.w3([g.av(1,"numRequiredSignatures"),g.av(1,"numReadonlySignedAccounts"),g.av(1,"numReadonlyUnsignedAccounts"),g.av(t.length,"keyCount"),g.O6(L("key"),e,"keys"),L("recentBlockhash")]),c={numRequiredSignatures:n.Buffer.from([this.header.numRequiredSignatures]),numReadonlySignedAccounts:n.Buffer.from([this.header.numReadonlySignedAccounts]),numReadonlyUnsignedAccounts:n.Buffer.from([this.header.numReadonlyUnsignedAccounts]),keyCount:n.Buffer.from(t),keys:this.accountKeys.map(e=>W(e.toBytes())),recentBlockhash:u().decode(this.recentBlockhash)},l=n.Buffer.alloc(2048),d=o.encode(c,l);return s.copy(l,d),l.slice(0,d+s.length)}static from(e){let t=[...e],r=H(t);if(r!==(127&r))throw Error("Versioned messages must be deserialized with VersionedMessage.deserialize()");let i=H(t),s=H(t),a=q(t),o=[];for(let e=0;e<a;e++){let e=D(t,0,32);o.push(new N(n.Buffer.from(e)))}let c=D(t,0,32),l=q(t),d=[];for(let e=0;e<l;e++){let e=H(t),r=q(t),i=D(t,0,r),s=q(t),a=D(t,0,s),o=u().encode(n.Buffer.from(a));d.push({programIdIndex:e,accounts:i,data:o})}return new M({header:{numRequiredSignatures:r,numReadonlySignedAccounts:i,numReadonlyUnsignedAccounts:s},recentBlockhash:u().encode(n.Buffer.from(c)),accountKeys:o,instructions:d})}}class U{constructor(e){this.header=void 0,this.staticAccountKeys=void 0,this.recentBlockhash=void 0,this.compiledInstructions=void 0,this.addressTableLookups=void 0,this.header=e.header,this.staticAccountKeys=e.staticAccountKeys,this.recentBlockhash=e.recentBlockhash,this.compiledInstructions=e.compiledInstructions,this.addressTableLookups=e.addressTableLookups}get version(){return 0}get numAccountKeysFromLookups(){let e=0;for(let t of this.addressTableLookups)e+=t.readonlyIndexes.length+t.writableIndexes.length;return e}getAccountKeys(e){let t;if(e&&"accountKeysFromLookups"in e&&e.accountKeysFromLookups){if(this.numAccountKeysFromLookups!=e.accountKeysFromLookups.writable.length+e.accountKeysFromLookups.readonly.length)throw Error("Failed to get account keys because of a mismatch in the number of account keys from lookups");t=e.accountKeysFromLookups}else if(e&&"addressLookupTableAccounts"in e&&e.addressLookupTableAccounts)t=this.resolveAddressTableLookups(e.addressLookupTableAccounts);else if(this.addressTableLookups.length>0)throw Error("Failed to get account keys because address table lookups were not resolved");return new O(this.staticAccountKeys,t)}isAccountSigner(e){return e<this.header.numRequiredSignatures}isAccountWritable(e){let t=this.header.numRequiredSignatures,r=this.staticAccountKeys.length;if(e>=r)return e-r<this.addressTableLookups.reduce((e,t)=>e+t.writableIndexes.length,0);if(!(e>=this.header.numRequiredSignatures))return e<t-this.header.numReadonlySignedAccounts;{let i=r-t-this.header.numReadonlyUnsignedAccounts;return e-t<i}}resolveAddressTableLookups(e){let t={writable:[],readonly:[]};for(let r of this.addressTableLookups){let i=e.find(e=>e.key.equals(r.accountKey));if(!i)throw Error(`Failed to find address lookup table account for table key ${r.accountKey.toBase58()}`);for(let e of r.writableIndexes)if(e<i.state.addresses.length)t.writable.push(i.state.addresses[e]);else throw Error(`Failed to find address for index ${e} in address lookup table ${r.accountKey.toBase58()}`);for(let e of r.readonlyIndexes)if(e<i.state.addresses.length)t.readonly.push(i.state.addresses[e]);else throw Error(`Failed to find address for index ${e} in address lookup table ${r.accountKey.toBase58()}`)}return t}static compile(e){let t=K.compile(e.instructions,e.payerKey),r=[],i={writable:[],readonly:[]};for(let s of e.addressLookupTableAccounts||[]){let e=t.extractTableLookup(s);if(void 0!==e){let[t,{writable:s,readonly:n}]=e;r.push(t),i.writable.push(...s),i.readonly.push(...n)}}let[s,n]=t.getMessageComponents(),a=new O(n,i).compileInstructions(e.instructions);return new U({header:s,staticAccountKeys:n,recentBlockhash:e.recentBlockhash,compiledInstructions:a,addressTableLookups:r})}serialize(){let e=[];z(e,this.staticAccountKeys.length);let t=this.serializeInstructions(),r=[];z(r,this.compiledInstructions.length);let i=this.serializeAddressTableLookups(),s=[];z(s,this.addressTableLookups.length);let n=g.w3([g.u8("prefix"),g.w3([g.u8("numRequiredSignatures"),g.u8("numReadonlySignedAccounts"),g.u8("numReadonlyUnsignedAccounts")],"header"),g.av(e.length,"staticAccountKeysLength"),g.O6(L(),this.staticAccountKeys.length,"staticAccountKeys"),L("recentBlockhash"),g.av(r.length,"instructionsLength"),g.av(t.length,"serializedInstructions"),g.av(s.length,"addressTableLookupsLength"),g.av(i.length,"serializedAddressTableLookups")]),a=new Uint8Array(1232),o=n.encode({prefix:128,header:this.header,staticAccountKeysLength:new Uint8Array(e),staticAccountKeys:this.staticAccountKeys.map(e=>e.toBytes()),recentBlockhash:u().decode(this.recentBlockhash),instructionsLength:new Uint8Array(r),serializedInstructions:t,addressTableLookupsLength:new Uint8Array(s),serializedAddressTableLookups:i},a);return a.slice(0,o)}serializeInstructions(){let e=0,t=new Uint8Array(1232);for(let r of this.compiledInstructions){let i=[];z(i,r.accountKeyIndexes.length);let s=[];z(s,r.data.length);let n=g.w3([g.u8("programIdIndex"),g.av(i.length,"encodedAccountKeyIndexesLength"),g.O6(g.u8(),r.accountKeyIndexes.length,"accountKeyIndexes"),g.av(s.length,"encodedDataLength"),g.av(r.data.length,"data")]);e+=n.encode({programIdIndex:r.programIdIndex,encodedAccountKeyIndexesLength:new Uint8Array(i),accountKeyIndexes:r.accountKeyIndexes,encodedDataLength:new Uint8Array(s),data:r.data},t,e)}return t.slice(0,e)}serializeAddressTableLookups(){let e=0,t=new Uint8Array(1232);for(let r of this.addressTableLookups){let i=[];z(i,r.writableIndexes.length);let s=[];z(s,r.readonlyIndexes.length);let n=g.w3([L("accountKey"),g.av(i.length,"encodedWritableIndexesLength"),g.O6(g.u8(),r.writableIndexes.length,"writableIndexes"),g.av(s.length,"encodedReadonlyIndexesLength"),g.O6(g.u8(),r.readonlyIndexes.length,"readonlyIndexes")]);e+=n.encode({accountKey:r.accountKey.toBytes(),encodedWritableIndexesLength:new Uint8Array(i),writableIndexes:r.writableIndexes,encodedReadonlyIndexesLength:new Uint8Array(s),readonlyIndexes:r.readonlyIndexes},t,e)}return t.slice(0,e)}static deserialize(e){let t=[...e],r=H(t),i=127&r;R(r!==i,"Expected versioned message but received legacy message"),R(0===i,`Expected versioned message with version 0 but found version ${i}`);let s={numRequiredSignatures:H(t),numReadonlySignedAccounts:H(t),numReadonlyUnsignedAccounts:H(t)},n=[],a=q(t);for(let e=0;e<a;e++)n.push(new N(D(t,0,32)));let o=u().encode(D(t,0,32)),c=q(t),l=[];for(let e=0;e<c;e++){let e=H(t),r=q(t),i=D(t,0,r),s=q(t),n=new Uint8Array(D(t,0,s));l.push({programIdIndex:e,accountKeyIndexes:i,data:n})}let d=q(t),h=[];for(let e=0;e<d;e++){let e=new N(D(t,0,32)),r=q(t),i=D(t,0,r),s=q(t),n=D(t,0,s);h.push({accountKey:e,writableIndexes:i,readonlyIndexes:n})}return new U({header:s,staticAccountKeys:n,recentBlockhash:o,compiledInstructions:l,addressTableLookups:h})}}let $=function(e){return e[e.BLOCKHEIGHT_EXCEEDED=0]="BLOCKHEIGHT_EXCEEDED",e[e.PROCESSED=1]="PROCESSED",e[e.TIMED_OUT=2]="TIMED_OUT",e[e.NONCE_INVALID=3]="NONCE_INVALID",e}({}),F=n.Buffer.alloc(64).fill(0);class V{constructor(e){this.keys=void 0,this.programId=void 0,this.data=n.Buffer.alloc(0),this.programId=e.programId,this.keys=e.keys,e.data&&(this.data=e.data)}toJSON(){return{keys:this.keys.map(({pubkey:e,isSigner:t,isWritable:r})=>({pubkey:e.toJSON(),isSigner:t,isWritable:r})),programId:this.programId.toJSON(),data:[...this.data]}}}class J{get signature(){return this.signatures.length>0?this.signatures[0].signature:null}constructor(e){if(this.signatures=[],this.feePayer=void 0,this.instructions=[],this.recentBlockhash=void 0,this.lastValidBlockHeight=void 0,this.nonceInfo=void 0,this.minNonceContextSlot=void 0,this._message=void 0,this._json=void 0,!e)return;if(e.feePayer&&(this.feePayer=e.feePayer),e.signatures&&(this.signatures=e.signatures),Object.prototype.hasOwnProperty.call(e,"nonceInfo")){let{minContextSlot:t,nonceInfo:r}=e;this.minNonceContextSlot=t,this.nonceInfo=r}else if(Object.prototype.hasOwnProperty.call(e,"lastValidBlockHeight")){let{blockhash:t,lastValidBlockHeight:r}=e;this.recentBlockhash=t,this.lastValidBlockHeight=r}else{let{recentBlockhash:t,nonceInfo:r}=e;r&&(this.nonceInfo=r),this.recentBlockhash=t}}toJSON(){return{recentBlockhash:this.recentBlockhash||null,feePayer:this.feePayer?this.feePayer.toJSON():null,nonceInfo:this.nonceInfo?{nonce:this.nonceInfo.nonce,nonceInstruction:this.nonceInfo.nonceInstruction.toJSON()}:null,instructions:this.instructions.map(e=>e.toJSON()),signers:this.signatures.map(({publicKey:e})=>e.toJSON())}}add(...e){if(0===e.length)throw Error("No instructions");return e.forEach(e=>{"instructions"in e?this.instructions=this.instructions.concat(e.instructions):"data"in e&&"programId"in e&&"keys"in e?this.instructions.push(e):this.instructions.push(new V(e))}),this}compileMessage(){let e,t,r;if(this._message&&JSON.stringify(this.toJSON())===JSON.stringify(this._json))return this._message;if(this.nonceInfo?(e=this.nonceInfo.nonce,t=this.instructions[0]!=this.nonceInfo.nonceInstruction?[this.nonceInfo.nonceInstruction,...this.instructions]:this.instructions):(e=this.recentBlockhash,t=this.instructions),!e)throw Error("Transaction recentBlockhash required");if(t.length<1&&console.warn("No instructions provided"),this.feePayer)r=this.feePayer;else if(this.signatures.length>0&&this.signatures[0].publicKey)r=this.signatures[0].publicKey;else throw Error("Transaction fee payer required");for(let e=0;e<t.length;e++)if(void 0===t[e].programId)throw Error(`Transaction instruction index ${e} has undefined program id`);let i=[],s=[];t.forEach(e=>{e.keys.forEach(e=>{s.push({...e})});let t=e.programId.toString();i.includes(t)||i.push(t)}),i.forEach(e=>{s.push({pubkey:new N(e),isSigner:!1,isWritable:!1})});let n=[];s.forEach(e=>{let t=e.pubkey.toString(),r=n.findIndex(e=>e.pubkey.toString()===t);r>-1?(n[r].isWritable=n[r].isWritable||e.isWritable,n[r].isSigner=n[r].isSigner||e.isSigner):n.push(e)}),n.sort(function(e,t){return e.isSigner!==t.isSigner?e.isSigner?-1:1:e.isWritable!==t.isWritable?e.isWritable?-1:1:e.pubkey.toBase58().localeCompare(t.pubkey.toBase58(),"en",{localeMatcher:"best fit",usage:"sort",sensitivity:"variant",ignorePunctuation:!1,numeric:!1,caseFirst:"lower"})});let a=n.findIndex(e=>e.pubkey.equals(r));if(a>-1){let[e]=n.splice(a,1);e.isSigner=!0,e.isWritable=!0,n.unshift(e)}else n.unshift({pubkey:r,isSigner:!0,isWritable:!0});for(let e of this.signatures){let t=n.findIndex(t=>t.pubkey.equals(e.publicKey));if(t>-1)n[t].isSigner||(n[t].isSigner=!0,console.warn("Transaction references a signature that is unnecessary, only the fee payer and instruction signer accounts should sign a transaction. This behavior is deprecated and will throw an error in the next major version release."));else throw Error(`unknown signer: ${e.publicKey.toString()}`)}let o=0,c=0,l=0,d=[],h=[];n.forEach(({pubkey:e,isSigner:t,isWritable:r})=>{t?(d.push(e.toString()),o+=1,r||(c+=1)):(h.push(e.toString()),r||(l+=1))});let g=d.concat(h),p=t.map(e=>{let{data:t,programId:r}=e;return{programIdIndex:g.indexOf(r.toString()),accounts:e.keys.map(e=>g.indexOf(e.pubkey.toString())),data:u().encode(t)}});return p.forEach(e=>{R(e.programIdIndex>=0),e.accounts.forEach(e=>R(e>=0))}),new M({header:{numRequiredSignatures:o,numReadonlySignedAccounts:c,numReadonlyUnsignedAccounts:l},accountKeys:g,recentBlockhash:e,instructions:p})}_compile(){let e=this.compileMessage(),t=e.accountKeys.slice(0,e.header.numRequiredSignatures);return this.signatures.length===t.length&&this.signatures.every((e,r)=>t[r].equals(e.publicKey))?e:(this.signatures=t.map(e=>({signature:null,publicKey:e})),e)}serializeMessage(){return this._compile().serialize()}async getEstimatedFee(e){return(await e.getFeeForMessage(this.compileMessage())).value}setSigners(...e){if(0===e.length)throw Error("No signers");let t=new Set;this.signatures=e.filter(e=>{let r=e.toString();return!t.has(r)&&(t.add(r),!0)}).map(e=>({signature:null,publicKey:e}))}sign(...e){if(0===e.length)throw Error("No signers");let t=new Set,r=[];for(let i of e){let e=i.publicKey.toString();t.has(e)||(t.add(e),r.push(i))}this.signatures=r.map(e=>({signature:null,publicKey:e.publicKey}));let i=this._compile();this._partialSign(i,...r)}partialSign(...e){if(0===e.length)throw Error("No signers");let t=new Set,r=[];for(let i of e){let e=i.publicKey.toString();t.has(e)||(t.add(e),r.push(i))}let i=this._compile();this._partialSign(i,...r)}_partialSign(e,...t){let r=e.serialize();t.forEach(e=>{let t=_(r,e.secretKey);this._addSignature(e.publicKey,W(t))})}addSignature(e,t){this._compile(),this._addSignature(e,t)}_addSignature(e,t){R(64===t.length);let r=this.signatures.findIndex(t=>e.equals(t.publicKey));if(r<0)throw Error(`unknown signer: ${e.toString()}`);this.signatures[r].signature=n.Buffer.from(t)}verifySignatures(e=!0){return!this._getMessageSignednessErrors(this.serializeMessage(),e)}_getMessageSignednessErrors(e,t){let r={};for(let{signature:i,publicKey:s}of this.signatures)null===i?t&&(r.missing||=[]).push(s):A(i,e,s.toBytes())||(r.invalid||=[]).push(s);return r.invalid||r.missing?r:void 0}serialize(e){let{requireAllSignatures:t,verifySignatures:r}=Object.assign({requireAllSignatures:!0,verifySignatures:!0},e),i=this.serializeMessage();if(r){let e=this._getMessageSignednessErrors(i,t);if(e){let t="Signature verification failed.";throw e.invalid&&(t+=`
|
|
2
2
|
Invalid signature for public key${1===e.invalid.length?"":"(s)"} [\`${e.invalid.map(e=>e.toBase58()).join("`, `")}\`].`),e.missing&&(t+=`
|
|
3
3
|
Missing signature for public key${1===e.missing.length?"":"(s)"} [\`${e.missing.map(e=>e.toBase58()).join("`, `")}\`].`),Error(t)}}return this._serialize(i)}_serialize(e){let{signatures:t}=this,r=[];z(r,t.length);let i=r.length+64*t.length+e.length,s=n.Buffer.alloc(i);return R(t.length<256),n.Buffer.from(r).copy(s,0),t.forEach(({signature:e},t)=>{null!==e&&(R(64===e.length,"signature has invalid length"),n.Buffer.from(e).copy(s,r.length+64*t))}),e.copy(s,r.length+64*t.length),R(s.length<=1232,`Transaction too large: ${s.length} > 1232`),s}get keys(){return R(1===this.instructions.length),this.instructions[0].keys.map(e=>e.pubkey)}get programId(){return R(1===this.instructions.length),this.instructions[0].programId}get data(){return R(1===this.instructions.length),this.instructions[0].data}static from(e){let t=[...e],r=q(t),i=[];for(let e=0;e<r;e++){let e=D(t,0,64);i.push(u().encode(n.Buffer.from(e)))}return J.populate(M.from(t),i)}static populate(e,t=[]){let r=new J;return r.recentBlockhash=e.recentBlockhash,e.header.numRequiredSignatures>0&&(r.feePayer=e.accountKeys[0]),t.forEach((t,i)=>{let s={signature:t==u().encode(F)?null:u().decode(t),publicKey:e.accountKeys[i]};r.signatures.push(s)}),e.instructions.forEach(t=>{let i=t.accounts.map(t=>{let i=e.accountKeys[t];return{pubkey:i,isSigner:r.signatures.some(e=>e.publicKey.toString()===i.toString())||e.isAccountSigner(t),isWritable:e.isAccountWritable(t)}});r.instructions.push(new V({keys:i,programId:e.accountKeys[t.programIdIndex],data:u().decode(t.data)}))}),r._message=e,r._json=r.toJSON(),r}}let G=new N("SysvarC1ock11111111111111111111111111111111");new N("SysvarEpochSchedu1e111111111111111111111111"),new N("Sysvar1nstructions1111111111111111111111111");let X=new N("SysvarRecentB1ockHashes11111111111111111111"),Q=new N("SysvarRent111111111111111111111111111111111");new N("SysvarRewards111111111111111111111111111111"),new N("SysvarS1otHashes111111111111111111111111111"),new N("SysvarS1otHistory11111111111111111111111111");let Z=new N("SysvarStakeHistory1111111111111111111111111");class ee extends Error{constructor({action:e,signature:t,transactionMessage:r,logs:i}){let s,n=i?`Logs:
|
|
4
4
|
${JSON.stringify(i.slice(-10),null,2)}. `:"",a="\nCatch the `SendTransactionError` and call `getLogs()` on it for full details.";switch(e){case"send":s=`Transaction ${t} resulted in an error.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4256],{84256:(e,t,o)=>{o.r(t),o.d(t,{default:()=>m});var a=o(95155),s=o(12115),l=o(52056),n=o(78561),r=o(8678),c=o(99794),i=o(53667),d=o(54901);let x=["base","ethereum","arbitrum","optimism","polygon","solana"],p=["function name() view returns (string)","function symbol() view returns (string)","function decimals() view returns (uint8)","function totalSupply() view returns (uint256)"];function m(e){let{config:t}=e,{getRpcUrl:o}=(0,d.A)(),[m,u]=(0,s.useState)((null==t?void 0:t.defaultChain)||"base"),[f,h]=(0,s.useState)((null==t?void 0:t.defaultAddress)||""),[v,y]=(0,s.useState)(!1),[b,j]=(0,s.useState)(null),[N,g]=(0,s.useState)(null),w=async()=>{let e=f.trim();if(e){y(!0),j(null),g(null);try{var t,a,s,l,i;let d=/^0x[a-fA-F0-9]{40}$/.test(e)||/^[1-9A-HJ-NP-Za-km-z]{32,44}$/.test(e),x=[];if(d){let o=await fetch("https://api.dexscreener.com/latest/dex/pairs/".concat(m,"/").concat(e));if(o.ok){let e=await o.json();(null==(t=e.pairs)?void 0:t.length)&&(x=e.pairs)}if(0===x.length){let t=await fetch("https://api.dexscreener.com/latest/dex/tokens/".concat(e));t.ok&&(x=(await t.json()).pairs||[])}}if(0===x.length){let t=await fetch("https://api.dexscreener.com/latest/dex/search?q=".concat(encodeURIComponent(e)));t.ok&&(x=(await t.json()).pairs||[])}if(x.length>0){let e=function(e,t){let o=e.filter(e=>e.chainId===t);return o.length>0?o.sort((e,t)=>{var o,a;return((null==(o=t.liquidity)?void 0:o.usd)||0)-((null==(a=e.liquidity)?void 0:a.usd)||0)})[0]:[...e].sort((e,t)=>{var o,a;return((null==(o=t.liquidity)?void 0:o.usd)||0)-((null==(a=e.liquidity)?void 0:a.usd)||0)})[0]}(x,m);g({name:(null==(a=e.baseToken)?void 0:a.name)||"Unknown",symbol:(null==(s=e.baseToken)?void 0:s.symbol)||"???",priceUsd:e.priceUsd||"0",fdv:e.fdv||0,volume24h:(null==(l=e.volume)?void 0:l.h24)||0,priceChange24h:(null==(i=e.priceChange)?void 0:i.h24)||0,pairAddress:e.pairAddress,chain:e.chainId||m,source:"dex"});return}if(!/^0x[a-fA-F0-9]{40}$/.test(e)||"solana"===m)throw Error("No data found — try a contract address");let u=o(m),f=new n.FR(u),h=new r.NZ(e,p,f),[v,y,b,j]=await Promise.all([h.name().catch(()=>"Unknown"),h.symbol().catch(()=>"???"),h.decimals().catch(()=>18),h.totalSupply().catch(()=>BigInt(0))]),N=c.Js(j,b);g({name:v,symbol:y,priceUsd:"0",fdv:0,volume24h:0,priceChange24h:0,pairAddress:"",chain:m,totalSupply:N,decimals:b,source:"rpc"})}catch(e){j(e instanceof Error?e.message:"Failed to fetch token data")}finally{y(!1)}}},k=e=>e>=1e9?"$".concat((e/1e9).toFixed(2),"B"):e>=1e6?"$".concat((e/1e6).toFixed(2),"M"):e>=1e3?"$".concat((e/1e3).toFixed(2),"K"):"$".concat(e.toFixed(2)),C=N&&N.priceChange24h>=0?"var(--color-success, #00c853)":"var(--color-warning, #ff4d00)";return(0,a.jsxs)("div",{className:"space-y-3",children:[(0,a.jsx)(i.XS,{label:"CHAIN",value:m,onChange:u,chains:x,size:"sm"}),(0,a.jsx)(i.ks,{label:"TOKEN",value:f,onChange:e=>h(e.target.value),onKeyDown:e=>"Enter"===e.key&&w(),placeholder:"token, pool, or name",compact:!0}),(0,a.jsx)(i.$n,{type:"button",onClick:w,disabled:v||!f.trim(),loading:v,className:"w-full",children:v?"LOADING...":"LOAD"}),b&&(0,a.jsx)("div",{className:"p-2",style:{backgroundColor:"color-mix(in srgb, var(--color-warning, #ff4d00) 10%, transparent)",border:"1px solid color-mix(in srgb, var(--color-warning, #ff4d00) 30%, transparent)"},children:(0,a.jsxs)("div",{className:"flex items-center gap-1",children:[(0,a.jsx)(l.A,{size:10,style:{color:"var(--color-warning, #ff4d00)"}}),(0,a.jsx)("span",{className:"font-mono text-[9px]",style:{color:"var(--color-warning, #ff4d00)"},children:b})]})}),N&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"p-2",style:{backgroundColor:"var(--color-background-alt, #f4f4f5)",border:"1px solid var(--color-border, #d4d4d8)"},children:[(0,a.jsxs)("div",{className:"flex items-center justify-between mb-1",children:[(0,a.jsx)("span",{className:"font-mono text-[11px] font-bold",style:{color:"var(--color-text, #0a0a0a)"},children:N.name}),(0,a.jsx)("span",{className:"font-mono text-[9px] font-bold",style:{color:"var(--color-text-muted, #6b7280)"},children:N.symbol})]}),"dex"===N.source&&(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsxs)("span",{className:"font-mono text-[13px] font-bold",style:{color:"var(--color-text, #0a0a0a)"},children:["$",parseFloat(N.priceUsd).toFixed(.01>parseFloat(N.priceUsd)?8:4)]}),(0,a.jsxs)("span",{className:"font-mono text-[10px] font-bold",style:{color:C},children:[N.priceChange24h>=0?"+":"",N.priceChange24h.toFixed(2),"%"]})]}),"rpc"===N.source&&(0,a.jsx)("div",{className:"font-mono text-[8px]",style:{color:"var(--color-text-faint, #9ca3af)"},children:"ON-CHAIN ONLY — NO DEX DATA"})]}),(0,a.jsxs)("div",{className:"space-y-1.5",children:["dex"===N.source&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsx)("span",{className:"font-mono text-[9px]",style:{color:"var(--color-text-muted, #888)"},children:"MKT_CAP"}),(0,a.jsx)("span",{className:"font-mono text-[10px] font-bold",style:{color:"var(--color-text, #0a0a0a)"},children:k(N.fdv)})]}),(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsx)("span",{className:"font-mono text-[9px]",style:{color:"var(--color-text-muted, #888)"},children:"VOL_24H"}),(0,a.jsx)("span",{className:"font-mono text-[10px] font-bold",style:{color:"var(--color-text, #0a0a0a)"},children:k(N.volume24h)})]})]}),"rpc"===N.source&&N.totalSupply&&(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsx)("span",{className:"font-mono text-[9px]",style:{color:"var(--color-text-muted, #888)"},children:"SUPPLY"}),(0,a.jsx)("span",{className:"font-mono text-[10px] font-bold",style:{color:"var(--color-text, #0a0a0a)"},children:parseFloat(N.totalSupply)>=1e9?"".concat((parseFloat(N.totalSupply)/1e9).toFixed(2),"B"):parseFloat(N.totalSupply)>=1e6?"".concat((parseFloat(N.totalSupply)/1e6).toFixed(2),"M"):parseFloat(N.totalSupply).toLocaleString()})]}),"rpc"===N.source&&void 0!==N.decimals&&(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsx)("span",{className:"font-mono text-[9px]",style:{color:"var(--color-text-muted, #888)"},children:"DECIMALS"}),(0,a.jsx)("span",{className:"font-mono text-[10px] font-bold",style:{color:"var(--color-text, #0a0a0a)"},children:N.decimals})]}),(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsx)("span",{className:"font-mono text-[9px]",style:{color:"var(--color-text-muted, #888)"},children:"CHAIN"}),(0,a.jsx)("span",{className:"font-mono text-[10px] font-bold",style:{color:"var(--color-text, #0a0a0a)"},children:N.chain.toUpperCase()})]})]}),"dex"===N.source&&N.pairAddress&&(0,a.jsx)("div",{style:{border:"1px solid var(--color-border, #d4d4d8)",height:200,overflow:"hidden"},children:(0,a.jsx)("iframe",{src:"https://dexscreener.com/".concat(N.chain,"/").concat(N.pairAddress,"?embed=1&theme=dark&info=0&trades=0"),title:"Price Chart",width:"100%",height:"100%",style:{border:"none"}})})]})]})}}}]);
|