@elizaos/plugin-wallet-ui 2.0.3-beta.6 → 2.0.3-beta.7

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.
Files changed (95) hide show
  1. package/dist/InventoryView.d.ts +19 -0
  2. package/dist/InventoryView.d.ts.map +1 -0
  3. package/dist/InventoryView.helpers.d.ts +32 -0
  4. package/dist/InventoryView.helpers.d.ts.map +1 -0
  5. package/dist/InventoryView.helpers.js +104 -0
  6. package/dist/InventoryView.helpers.js.map +1 -0
  7. package/dist/InventoryView.interact.d.ts +2 -0
  8. package/dist/InventoryView.interact.d.ts.map +1 -0
  9. package/dist/InventoryView.interact.js +47 -0
  10. package/dist/InventoryView.interact.js.map +1 -0
  11. package/dist/InventoryView.js +242 -0
  12. package/dist/InventoryView.js.map +1 -0
  13. package/dist/components/InventoryAppView.d.ts +2 -0
  14. package/dist/components/InventoryAppView.d.ts.map +1 -0
  15. package/dist/components/InventoryAppView.js +1744 -0
  16. package/dist/components/InventoryAppView.js.map +1 -0
  17. package/dist/components/InventorySpatialView.d.ts +86 -0
  18. package/dist/components/InventorySpatialView.d.ts.map +1 -0
  19. package/dist/components/InventorySpatialView.js +218 -0
  20. package/dist/components/InventorySpatialView.js.map +1 -0
  21. package/dist/index.d.ts +15 -0
  22. package/dist/index.d.ts.map +1 -0
  23. package/dist/index.js +65 -0
  24. package/dist/index.js.map +1 -0
  25. package/dist/inventory/ChainIcon.d.ts +9 -0
  26. package/dist/inventory/ChainIcon.d.ts.map +1 -0
  27. package/dist/inventory/ChainIcon.js +71 -0
  28. package/dist/inventory/ChainIcon.js.map +1 -0
  29. package/dist/inventory/TokenLogo.d.ts +8 -0
  30. package/dist/inventory/TokenLogo.d.ts.map +1 -0
  31. package/dist/inventory/TokenLogo.js +52 -0
  32. package/dist/inventory/TokenLogo.js.map +1 -0
  33. package/dist/inventory/chainConfig.d.ts +89 -0
  34. package/dist/inventory/chainConfig.d.ts.map +1 -0
  35. package/dist/inventory/chainConfig.js +252 -0
  36. package/dist/inventory/chainConfig.js.map +1 -0
  37. package/dist/inventory/constants.d.ts +31 -0
  38. package/dist/inventory/constants.d.ts.map +1 -0
  39. package/dist/inventory/constants.js +59 -0
  40. package/dist/inventory/constants.js.map +1 -0
  41. package/dist/inventory/index.d.ts +5 -0
  42. package/dist/inventory/index.d.ts.map +1 -0
  43. package/dist/inventory/index.js +43 -0
  44. package/dist/inventory/index.js.map +1 -0
  45. package/dist/inventory/inventory-chain-filters.d.ts +11 -0
  46. package/dist/inventory/inventory-chain-filters.d.ts.map +1 -0
  47. package/dist/inventory/inventory-chain-filters.js +49 -0
  48. package/dist/inventory/inventory-chain-filters.js.map +1 -0
  49. package/dist/inventory/media-url.d.ts +6 -0
  50. package/dist/inventory/media-url.d.ts.map +1 -0
  51. package/dist/inventory/media-url.js +32 -0
  52. package/dist/inventory/media-url.js.map +1 -0
  53. package/dist/inventory/useInventoryData.d.ts +38 -0
  54. package/dist/inventory/useInventoryData.d.ts.map +1 -0
  55. package/dist/inventory/useInventoryData.js +311 -0
  56. package/dist/inventory/useInventoryData.js.map +1 -0
  57. package/dist/plugin.d.ts +3 -0
  58. package/dist/plugin.d.ts.map +1 -0
  59. package/dist/plugin.js +55 -0
  60. package/dist/plugin.js.map +1 -0
  61. package/dist/register-routes.d.ts +9 -0
  62. package/dist/register-routes.d.ts.map +1 -0
  63. package/dist/register-routes.js +22 -0
  64. package/dist/register-routes.js.map +1 -0
  65. package/dist/register-terminal-view.d.ts +15 -0
  66. package/dist/register-terminal-view.d.ts.map +1 -0
  67. package/dist/register-terminal-view.js +33 -0
  68. package/dist/register-terminal-view.js.map +1 -0
  69. package/dist/register.d.ts +4 -0
  70. package/dist/register.d.ts.map +1 -0
  71. package/dist/register.js +20 -0
  72. package/dist/register.js.map +1 -0
  73. package/dist/ui.d.ts +13 -0
  74. package/dist/ui.d.ts.map +1 -0
  75. package/dist/ui.js +62 -0
  76. package/dist/ui.js.map +1 -0
  77. package/dist/views/bundle.js +1072 -0
  78. package/dist/views/bundle.js.map +1 -0
  79. package/dist/wallet-rpc.d.ts +2 -0
  80. package/dist/wallet-rpc.d.ts.map +1 -0
  81. package/dist/wallet-rpc.js +9 -0
  82. package/dist/wallet-rpc.js.map +1 -0
  83. package/dist/wallet-view-bundle.d.ts +3 -0
  84. package/dist/wallet-view-bundle.d.ts.map +1 -0
  85. package/dist/wallet-view-bundle.js +7 -0
  86. package/dist/wallet-view-bundle.js.map +1 -0
  87. package/dist/widgets/wallet-status.d.ts +3 -0
  88. package/dist/widgets/wallet-status.d.ts.map +1 -0
  89. package/dist/widgets/wallet-status.helpers.d.ts +3 -0
  90. package/dist/widgets/wallet-status.helpers.d.ts.map +1 -0
  91. package/dist/widgets/wallet-status.helpers.js +12 -0
  92. package/dist/widgets/wallet-status.helpers.js.map +1 -0
  93. package/dist/widgets/wallet-status.js +291 -0
  94. package/dist/widgets/wallet-status.js.map +1 -0
  95. package/package.json +7 -7
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/inventory/useInventoryData.ts"],"sourcesContent":["import type {\n EvmChainBalance,\n WalletAddresses,\n WalletBalancesResponse,\n WalletConfigStatus,\n WalletNftsResponse,\n} from \"@elizaos/shared\";\nimport type { InventoryChainFilters } from \"@elizaos/ui/state\";\nimport { useMemo } from \"react\";\nimport {\n CHAIN_CONFIGS,\n type ChainKey,\n PRIMARY_CHAIN_KEYS,\n resolveChainKey,\n} from \"./chainConfig.js\";\nimport {\n isBscChainName,\n parseFiniteAmount,\n type NftItem,\n type TokenRow,\n} from \"./constants.js\";\nimport {\n computeSingleChainFocus,\n matchesInventoryChainFilter,\n type PrimaryInventoryChainKey,\n} from \"./inventory-chain-filters.js\";\n\nexport interface InventoryDataInput {\n walletBalances: WalletBalancesResponse | null;\n walletAddresses: WalletAddresses | null;\n walletConfig: WalletConfigStatus | null;\n walletNfts: WalletNftsResponse | null;\n inventorySort: string;\n inventorySortDirection: \"asc\" | \"desc\";\n inventoryChainFilters: InventoryChainFilters;\n}\n\nexport interface InventoryDataOutput {\n /** When exactly one chain toggle is on, that key; otherwise null. */\n singleChainFocus: PrimaryInventoryChainKey | null;\n tokenRows: TokenRow[];\n /** Unfiltered rows (for sidebar per-chain asset counts). */\n tokenRowsAllChains: TokenRow[];\n sortedRows: TokenRow[];\n chainErrors: EvmChainBalance[];\n focusChainHasError: boolean;\n allNfts: NftItem[];\n primaryChain: EvmChainBalance | null;\n primaryNativeBalanceNum: number;\n focusedRows: TokenRow[];\n visibleRows: TokenRow[];\n totalUsd: number;\n visibleChainErrors: EvmChainBalance[];\n focusedChainName: string | null;\n focusedChainError: string | null;\n focusedNativeBalance: string | null;\n focusedNativeSymbol: string | null;\n primaryChainError: string | null;\n primaryNativeBalance: string | null;\n}\n\nfunction hasVisibleBalance(row: TokenRow): boolean {\n return row.balanceRaw > 0 || row.valueUsd > 0;\n}\n\nfunction matchesSingleChainFocus(chainName: string, focus: ChainKey): boolean {\n const resolved = resolveChainKey(chainName);\n return resolved === focus;\n}\n\n/** Builds token rows as if every primary chain were included (before per-toggle filter). */\nfunction buildTokenRowsAllChains({\n walletBalances,\n walletAddresses,\n walletConfig,\n}: {\n walletBalances: WalletBalancesResponse | null;\n walletAddresses: WalletAddresses | null;\n walletConfig: WalletConfigStatus | null;\n}): TokenRow[] {\n const rows: TokenRow[] = [];\n const knownEvmAddr = walletAddresses?.evmAddress ?? walletConfig?.evmAddress;\n\n if (walletBalances?.evm) {\n const seenChainKeys = new Set<string>();\n for (const chain of walletBalances.evm.chains) {\n const chainKey = resolveChainKey(chain.chain);\n if (chainKey) seenChainKeys.add(chainKey);\n rows.push({\n chain: chain.chain,\n symbol: chain.nativeSymbol,\n name: `${chain.chain} native`,\n contractAddress: null,\n logoUrl: null,\n balance: chain.nativeBalance,\n valueUsd: parseFiniteAmount(chain.nativeValueUsd),\n balanceRaw: parseFiniteAmount(chain.nativeBalance),\n isNative: true,\n });\n if (chain.error) continue;\n for (const tk of chain.tokens) {\n rows.push({\n chain: chain.chain,\n symbol: tk.symbol,\n name: tk.name,\n contractAddress: tk.contractAddress ?? null,\n logoUrl: tk.logoUrl ?? null,\n balance: tk.balance,\n valueUsd: parseFiniteAmount(tk.valueUsd),\n balanceRaw: parseFiniteAmount(tk.balance),\n isNative: false,\n });\n }\n }\n if (knownEvmAddr) {\n for (const key of PRIMARY_CHAIN_KEYS) {\n if (key === \"solana\") continue;\n if (seenChainKeys.has(key)) continue;\n const cfg = CHAIN_CONFIGS[key];\n rows.unshift({\n chain: cfg.name,\n symbol: cfg.nativeSymbol,\n name: `${cfg.name} native`,\n contractAddress: null,\n logoUrl: null,\n balance: \"0\",\n valueUsd: 0,\n balanceRaw: 0,\n isNative: true,\n });\n }\n }\n } else if (knownEvmAddr) {\n for (const key of PRIMARY_CHAIN_KEYS) {\n if (key === \"solana\") continue;\n const cfg = CHAIN_CONFIGS[key];\n rows.push({\n chain: cfg.name,\n symbol: cfg.nativeSymbol,\n name: `${cfg.name} native`,\n contractAddress: null,\n logoUrl: null,\n balance: \"0\",\n valueUsd: 0,\n balanceRaw: 0,\n isNative: true,\n });\n }\n }\n\n if (walletBalances?.solana) {\n rows.push({\n chain: \"Solana\",\n symbol: \"SOL\",\n name: \"Solana native\",\n contractAddress: null,\n logoUrl: null,\n balance: walletBalances.solana.solBalance,\n valueUsd: parseFiniteAmount(walletBalances.solana.solValueUsd),\n balanceRaw: parseFiniteAmount(walletBalances.solana.solBalance),\n isNative: true,\n });\n for (const tk of walletBalances.solana.tokens) {\n rows.push({\n chain: \"Solana\",\n symbol: tk.symbol,\n name: tk.name,\n contractAddress: tk.mint ?? null,\n logoUrl: tk.logoUrl ?? null,\n balance: tk.balance,\n valueUsd: parseFiniteAmount(tk.valueUsd),\n balanceRaw: parseFiniteAmount(tk.balance),\n isNative: false,\n });\n }\n }\n return rows.filter(hasVisibleBalance);\n}\n\nexport function useInventoryData({\n walletBalances,\n walletAddresses,\n walletConfig,\n walletNfts,\n inventorySort,\n inventorySortDirection,\n inventoryChainFilters,\n}: InventoryDataInput): InventoryDataOutput {\n const singleChainFocus = useMemo(\n () => computeSingleChainFocus(inventoryChainFilters),\n [inventoryChainFilters],\n );\n const knownEvmAddr = walletAddresses?.evmAddress ?? walletConfig?.evmAddress;\n const _knownSolAddr =\n walletAddresses?.solanaAddress ?? walletConfig?.solanaAddress;\n\n const primaryChain = useMemo(() => {\n if (!walletBalances?.evm?.chains) return null;\n return (\n walletBalances.evm.chains.find((c: EvmChainBalance) =>\n isBscChainName(c.chain),\n ) ?? null\n );\n }, [walletBalances]);\n\n const primaryNativeBalanceNum = useMemo(() => {\n if (!primaryChain) return 0;\n return parseFiniteAmount(primaryChain.nativeBalance);\n }, [primaryChain]);\n\n const tokenRowsAllChains = useMemo(\n () =>\n buildTokenRowsAllChains({\n walletBalances,\n walletAddresses,\n walletConfig,\n }),\n [walletBalances, walletAddresses, walletConfig],\n );\n\n const tokenRows = useMemo(\n () =>\n tokenRowsAllChains.filter((row) =>\n matchesInventoryChainFilter(row.chain, inventoryChainFilters),\n ),\n [tokenRowsAllChains, inventoryChainFilters],\n );\n\n const sortedRows = useMemo(() => {\n const sorted = [...tokenRows];\n const asc = inventorySortDirection === \"asc\";\n if (inventorySort === \"value\") {\n sorted.sort((a, b) => {\n const diff = a.valueUsd - b.valueUsd;\n if (diff !== 0) return asc ? diff : -diff;\n const diff2 = a.balanceRaw - b.balanceRaw;\n return asc ? diff2 : -diff2;\n });\n } else if (inventorySort === \"chain\") {\n sorted.sort((a, b) => {\n const c = a.chain.localeCompare(b.chain);\n if (c !== 0) return asc ? c : -c;\n const s = a.symbol.localeCompare(b.symbol);\n return asc ? s : -s;\n });\n } else if (inventorySort === \"symbol\") {\n sorted.sort((a, b) => {\n const s = a.symbol.localeCompare(b.symbol);\n if (s !== 0) return asc ? s : -s;\n const c = a.chain.localeCompare(b.chain);\n return asc ? c : -c;\n });\n }\n return sorted;\n }, [tokenRows, inventorySort, inventorySortDirection]);\n\n const chainErrors = useMemo(\n () =>\n (walletBalances?.evm?.chains ?? []).filter(\n (c: EvmChainBalance) => c.error,\n ),\n [walletBalances],\n );\n\n const focusChainHasError = useMemo(() => {\n return chainErrors.some((c) =>\n matchesInventoryChainFilter(c.chain, inventoryChainFilters),\n );\n }, [chainErrors, inventoryChainFilters]);\n\n const allNfts = useMemo((): NftItem[] => {\n if (!walletNfts) return [];\n const items: NftItem[] = [];\n for (const chainData of walletNfts.evm) {\n for (const nft of chainData.nfts) {\n items.push({\n chain: chainData.chain,\n name: nft.name,\n imageUrl: nft.imageUrl,\n collectionName: nft.collectionName || nft.tokenType,\n });\n }\n }\n if (walletNfts.solana) {\n for (const nft of walletNfts.solana.nfts) {\n items.push({\n chain: \"Solana\",\n name: nft.name,\n imageUrl: nft.imageUrl,\n collectionName: nft.collectionName,\n });\n }\n }\n const filtered = items.filter((nft) =>\n matchesInventoryChainFilter(nft.chain, inventoryChainFilters),\n );\n const sorted = [...filtered];\n const asc = inventorySortDirection === \"asc\";\n const normalizedSort = inventorySort === \"value\" ? \"symbol\" : inventorySort;\n\n if (normalizedSort === \"chain\") {\n sorted.sort((a, b) => {\n const chainDiff = a.chain.localeCompare(b.chain);\n if (chainDiff !== 0) return asc ? chainDiff : -chainDiff;\n const nameDiff = a.name.localeCompare(b.name);\n return asc ? nameDiff : -nameDiff;\n });\n } else {\n sorted.sort((a, b) => {\n const nameDiff = a.name.localeCompare(b.name);\n if (nameDiff !== 0) return asc ? nameDiff : -nameDiff;\n const chainDiff = a.chain.localeCompare(b.chain);\n return asc ? chainDiff : -chainDiff;\n });\n }\n\n return sorted;\n }, [\n walletNfts,\n inventoryChainFilters,\n inventorySort,\n inventorySortDirection,\n ]);\n\n const focusedChain = useMemo(() => {\n if (!singleChainFocus) return null;\n if (singleChainFocus === \"solana\") {\n return {\n name: CHAIN_CONFIGS.solana.name,\n nativeSymbol: CHAIN_CONFIGS.solana.nativeSymbol,\n nativeBalance: walletBalances?.solana?.solBalance ?? null,\n error: null,\n };\n }\n\n const chainConfig =\n CHAIN_CONFIGS[singleChainFocus as keyof typeof CHAIN_CONFIGS];\n const evmChain =\n walletBalances?.evm?.chains.find((chain) =>\n matchesSingleChainFocus(chain.chain, singleChainFocus),\n ) ?? null;\n\n if (!chainConfig && !evmChain) return null;\n\n return {\n name: evmChain?.chain ?? chainConfig?.name ?? singleChainFocus,\n nativeSymbol: evmChain?.nativeSymbol ?? chainConfig?.nativeSymbol ?? null,\n nativeBalance: evmChain?.nativeBalance ?? (knownEvmAddr ? \"0\" : null),\n error: evmChain?.error ?? null,\n };\n }, [singleChainFocus, knownEvmAddr, walletBalances]);\n\n const primaryChainError =\n primaryChain?.error ??\n chainErrors.find((chain) => isBscChainName(chain.chain))?.error ??\n null;\n const primaryNativeBalance: string | null =\n primaryChain?.nativeBalance ?? null;\n\n const focusedRows = sortedRows;\n const visibleRows = sortedRows;\n\n const totalUsd = useMemo(\n () => tokenRows.reduce((sum, r) => sum + r.valueUsd, 0),\n [tokenRows],\n );\n\n const visibleChainErrors = useMemo(() => {\n return chainErrors.filter((chain) =>\n matchesInventoryChainFilter(chain.chain, inventoryChainFilters),\n );\n }, [chainErrors, inventoryChainFilters]);\n\n return {\n singleChainFocus,\n tokenRows,\n tokenRowsAllChains,\n sortedRows,\n chainErrors,\n focusChainHasError,\n allNfts,\n primaryChain,\n primaryNativeBalanceNum,\n focusedRows,\n visibleRows,\n totalUsd,\n visibleChainErrors,\n focusedChainName: focusedChain?.name ?? null,\n focusedChainError: focusedChain?.error ?? null,\n focusedNativeBalance: focusedChain?.nativeBalance ?? null,\n focusedNativeSymbol: focusedChain?.nativeSymbol ?? null,\n primaryChainError,\n primaryNativeBalance,\n };\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,3 @@
1
+ import type { Plugin } from "@elizaos/core";
2
+ export declare const walletAppPlugin: Plugin;
3
+ //# sourceMappingURL=plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAE5C,eAAO,MAAM,eAAe,EAAE,MAkD7B,CAAC"}
package/dist/plugin.js ADDED
@@ -0,0 +1,55 @@
1
+ const walletAppPlugin = {
2
+ name: "@elizaos/plugin-wallet-ui",
3
+ description: "Non-custodial wallet inventory UI",
4
+ app: {
5
+ displayName: "Wallet",
6
+ category: "wallet",
7
+ icon: "Wallet",
8
+ visibleInAppStore: true,
9
+ developerOnly: false,
10
+ navTabs: [
11
+ {
12
+ id: "wallet.inventory",
13
+ label: "Wallet",
14
+ icon: "Wallet",
15
+ path: "/inventory",
16
+ order: 50,
17
+ componentExport: "@elizaos/plugin-wallet-ui#InventoryAppView"
18
+ }
19
+ ]
20
+ },
21
+ views: [
22
+ // ONE declaration → GUI + XR + TUI, all drawn from the single InventoryView
23
+ // spatial source. `modalities` is a plain literal here (plugin.ts is not in
24
+ // the view bundle), so no brand-new `@elizaos/core` runtime export reaches
25
+ // the bundle build.
26
+ {
27
+ id: "wallet",
28
+ label: "Wallet",
29
+ description: "Non-custodial wallet inventory and token balances",
30
+ icon: "Wallet",
31
+ path: "/wallet",
32
+ modalities: ["gui", "xr", "tui"],
33
+ bundlePath: "dist/views/bundle.js",
34
+ componentExport: "InventoryView",
35
+ tags: ["finance", "crypto", "wallet"],
36
+ visibleInManager: true,
37
+ desktopTabEnabled: true
38
+ }
39
+ ],
40
+ widgets: [
41
+ {
42
+ id: "wallet.status",
43
+ pluginId: "wallet",
44
+ slot: "chat-sidebar",
45
+ label: "Wallet Status",
46
+ icon: "Wallet",
47
+ order: 70,
48
+ defaultEnabled: true
49
+ }
50
+ ]
51
+ };
52
+ export {
53
+ walletAppPlugin
54
+ };
55
+ //# sourceMappingURL=plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/plugin.ts"],"sourcesContent":["import type { Plugin } from \"@elizaos/core\";\n\nexport const walletAppPlugin: Plugin = {\n name: \"@elizaos/plugin-wallet-ui\",\n description: \"Non-custodial wallet inventory UI\",\n app: {\n displayName: \"Wallet\",\n category: \"wallet\",\n icon: \"Wallet\",\n visibleInAppStore: true,\n developerOnly: false,\n navTabs: [\n {\n id: \"wallet.inventory\",\n label: \"Wallet\",\n icon: \"Wallet\",\n path: \"/inventory\",\n order: 50,\n componentExport: \"@elizaos/plugin-wallet-ui#InventoryAppView\",\n },\n ],\n },\n views: [\n // ONE declaration → GUI + XR + TUI, all drawn from the single InventoryView\n // spatial source. `modalities` is a plain literal here (plugin.ts is not in\n // the view bundle), so no brand-new `@elizaos/core` runtime export reaches\n // the bundle build.\n {\n id: \"wallet\",\n label: \"Wallet\",\n description: \"Non-custodial wallet inventory and token balances\",\n icon: \"Wallet\",\n path: \"/wallet\",\n modalities: [\"gui\", \"xr\", \"tui\"],\n bundlePath: \"dist/views/bundle.js\",\n componentExport: \"InventoryView\",\n tags: [\"finance\", \"crypto\", \"wallet\"],\n visibleInManager: true,\n desktopTabEnabled: true,\n },\n ],\n widgets: [\n {\n id: \"wallet.status\",\n pluginId: \"wallet\",\n slot: \"chat-sidebar\",\n label: \"Wallet Status\",\n icon: \"Wallet\",\n order: 70,\n defaultEnabled: true,\n },\n ],\n};\n"],"mappings":"AAEO,MAAM,kBAA0B;AAAA,EACrC,MAAM;AAAA,EACN,aAAa;AAAA,EACb,KAAK;AAAA,IACH,aAAa;AAAA,IACb,UAAU;AAAA,IACV,MAAM;AAAA,IACN,mBAAmB;AAAA,IACnB,eAAe;AAAA,IACf,SAAS;AAAA,MACP;AAAA,QACE,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,MAAM;AAAA,QACN,MAAM;AAAA,QACN,OAAO;AAAA,QACP,iBAAiB;AAAA,MACnB;AAAA,IACF;AAAA,EACF;AAAA,EACA,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA,IAKL;AAAA,MACE,IAAI;AAAA,MACJ,OAAO;AAAA,MACP,aAAa;AAAA,MACb,MAAM;AAAA,MACN,MAAM;AAAA,MACN,YAAY,CAAC,OAAO,MAAM,KAAK;AAAA,MAC/B,YAAY;AAAA,MACZ,iBAAiB;AAAA,MACjB,MAAM,CAAC,WAAW,UAAU,QAAQ;AAAA,MACpC,kBAAkB;AAAA,MAClB,mBAAmB;AAAA,IACrB;AAAA,EACF;AAAA,EACA,SAAS;AAAA,IACP;AAAA,MACE,IAAI;AAAA,MACJ,UAAU;AAAA,MACV,MAAM;AAAA,MACN,OAAO;AAAA,MACP,MAAM;AAAA,MACN,OAAO;AAAA,MACP,gBAAgB;AAAA,IAClB;AAAA,EACF;AACF;","names":[]}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Side-effect module: registers the wallet UI plugin (route loader + bundled
3
+ * shell page + bundled chat sidebar widget) with @elizaos/app-core.
4
+ *
5
+ * Hosts that bundle @elizaos/plugin-wallet-ui should load this module exactly once
6
+ * at boot so the registry entries are seeded before the shell mounts.
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=register-routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-routes.d.ts","sourceRoot":"","sources":["../src/register-routes.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
@@ -0,0 +1,22 @@
1
+ import { registerAppRoutePluginLoader } from "@elizaos/core";
2
+ import { registerAppShellPage } from "@elizaos/ui/app-shell-registry";
3
+ import { registerBuiltinWidgets } from "@elizaos/ui/widgets";
4
+ import { walletAppPlugin } from "./plugin.js";
5
+ import { WALLET_STATUS_WIDGET } from "./widgets/wallet-status.helpers.js";
6
+ registerAppRoutePluginLoader(
7
+ "@elizaos/plugin-wallet-ui",
8
+ async () => walletAppPlugin
9
+ );
10
+ registerAppShellPage({
11
+ id: "wallet.inventory",
12
+ pluginId: "app-wallet",
13
+ label: "Wallet",
14
+ icon: "Wallet",
15
+ path: "/inventory",
16
+ order: 50,
17
+ loader: () => import("./components/InventoryAppView.js").then((module) => ({
18
+ default: module.InventoryAppView
19
+ }))
20
+ });
21
+ registerBuiltinWidgets([WALLET_STATUS_WIDGET]);
22
+ //# sourceMappingURL=register-routes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/register-routes.ts"],"sourcesContent":["/**\n * Side-effect module: registers the wallet UI plugin (route loader + bundled\n * shell page + bundled chat sidebar widget) with @elizaos/app-core.\n *\n * Hosts that bundle @elizaos/plugin-wallet-ui should load this module exactly once\n * at boot so the registry entries are seeded before the shell mounts.\n */\n\nimport { registerAppRoutePluginLoader } from \"@elizaos/core\";\nimport { registerAppShellPage } from \"@elizaos/ui/app-shell-registry\";\nimport { registerBuiltinWidgets } from \"@elizaos/ui/widgets\";\n// Keep route/widget metadata eager, but load the full inventory dashboard only\n// when the user opens /inventory.\nimport { walletAppPlugin } from \"./plugin.js\";\nimport { WALLET_STATUS_WIDGET } from \"./widgets/wallet-status.helpers.js\";\n\nregisterAppRoutePluginLoader(\n \"@elizaos/plugin-wallet-ui\",\n async () => walletAppPlugin,\n);\n\nregisterAppShellPage({\n id: \"wallet.inventory\",\n pluginId: \"app-wallet\",\n label: \"Wallet\",\n icon: \"Wallet\",\n path: \"/inventory\",\n order: 50,\n loader: () =>\n import(\"./components/InventoryAppView.js\").then((module) => ({\n default: module.InventoryAppView,\n })),\n});\n\nregisterBuiltinWidgets([WALLET_STATUS_WIDGET]);\n"],"mappings":"AAQA,SAAS,oCAAoC;AAC7C,SAAS,4BAA4B;AACrC,SAAS,8BAA8B;AAGvC,SAAS,uBAAuB;AAChC,SAAS,4BAA4B;AAErC;AAAA,EACE;AAAA,EACA,YAAY;AACd;AAEA,qBAAqB;AAAA,EACnB,IAAI;AAAA,EACJ,UAAU;AAAA,EACV,OAAO;AAAA,EACP,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQ,MACN,OAAO,kCAAkC,EAAE,KAAK,CAAC,YAAY;AAAA,IAC3D,SAAS,OAAO;AAAA,EAClB,EAAE;AACN,CAAC;AAED,uBAAuB,CAAC,oBAAoB,CAAC;","names":[]}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Register the wallet view for terminal rendering.
3
+ *
4
+ * The agent terminal mounts plugin views by id from the `@elizaos/tui` terminal
5
+ * registry. This makes the wallet's `viewType: "tui"` declaration render for
6
+ * real in the terminal (the unified {@link InventorySpatialView}) rather than
7
+ * only navigating a GUI shell. A module-level snapshot lets a host push live
8
+ * portfolio data; with no host it defaults to an empty, balance-pending wallet.
9
+ */
10
+ import { type WalletSnapshot } from "./components/InventorySpatialView.tsx";
11
+ /** Update the snapshot the registered terminal view renders from. */
12
+ export declare function setWalletTerminalSnapshot(next: WalletSnapshot): void;
13
+ /** Register the wallet terminal view; returns an unregister function. */
14
+ export declare function registerWalletTerminalView(): () => void;
15
+ //# sourceMappingURL=register-terminal-view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-terminal-view.d.ts","sourceRoot":"","sources":["../src/register-terminal-view.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,uCAAuC,CAAC;AAkB/C,qEAAqE;AACrE,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,CAEpE;AAED,yEAAyE;AACzE,wBAAgB,0BAA0B,IAAI,MAAM,IAAI,CAIvD"}
@@ -0,0 +1,33 @@
1
+ import { registerSpatialTerminalView } from "@elizaos/ui/spatial/tui";
2
+ import { createElement } from "react";
3
+ import {
4
+ InventorySpatialView
5
+ } from "./components/InventorySpatialView.js";
6
+ const EMPTY = {
7
+ portfolioValueUsd: 0,
8
+ tokenRows: [],
9
+ walletNfts: [],
10
+ marketMovers: [],
11
+ tradingProfile: { realizedPnlBnb: 0, recentSwaps: [] },
12
+ addresses: { evmAddress: null, solanaAddress: null },
13
+ config: {
14
+ evmBalanceReady: false,
15
+ solanaBalanceReady: false,
16
+ selectedRpcProviders: []
17
+ }
18
+ };
19
+ let current = EMPTY;
20
+ function setWalletTerminalSnapshot(next) {
21
+ current = next;
22
+ }
23
+ function registerWalletTerminalView() {
24
+ return registerSpatialTerminalView(
25
+ "wallet",
26
+ () => createElement(InventorySpatialView, { snapshot: current })
27
+ );
28
+ }
29
+ export {
30
+ registerWalletTerminalView,
31
+ setWalletTerminalSnapshot
32
+ };
33
+ //# sourceMappingURL=register-terminal-view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/register-terminal-view.tsx"],"sourcesContent":["/**\n * Register the wallet view for terminal rendering.\n *\n * The agent terminal mounts plugin views by id from the `@elizaos/tui` terminal\n * registry. This makes the wallet's `viewType: \"tui\"` declaration render for\n * real in the terminal (the unified {@link InventorySpatialView}) rather than\n * only navigating a GUI shell. A module-level snapshot lets a host push live\n * portfolio data; with no host it defaults to an empty, balance-pending wallet.\n */\n\nimport { registerSpatialTerminalView } from \"@elizaos/ui/spatial/tui\";\nimport { createElement } from \"react\";\nimport {\n InventorySpatialView,\n type WalletSnapshot,\n} from \"./components/InventorySpatialView.js\";\n\nconst EMPTY: WalletSnapshot = {\n portfolioValueUsd: 0,\n tokenRows: [],\n walletNfts: [],\n marketMovers: [],\n tradingProfile: { realizedPnlBnb: 0, recentSwaps: [] },\n addresses: { evmAddress: null, solanaAddress: null },\n config: {\n evmBalanceReady: false,\n solanaBalanceReady: false,\n selectedRpcProviders: [],\n },\n};\n\nlet current: WalletSnapshot = EMPTY;\n\n/** Update the snapshot the registered terminal view renders from. */\nexport function setWalletTerminalSnapshot(next: WalletSnapshot): void {\n current = next;\n}\n\n/** Register the wallet terminal view; returns an unregister function. */\nexport function registerWalletTerminalView(): () => void {\n return registerSpatialTerminalView(\"wallet\", () =>\n createElement(InventorySpatialView, { snapshot: current }),\n );\n}\n"],"mappings":"AAUA,SAAS,mCAAmC;AAC5C,SAAS,qBAAqB;AAC9B;AAAA,EACE;AAAA,OAEK;AAEP,MAAM,QAAwB;AAAA,EAC5B,mBAAmB;AAAA,EACnB,WAAW,CAAC;AAAA,EACZ,YAAY,CAAC;AAAA,EACb,cAAc,CAAC;AAAA,EACf,gBAAgB,EAAE,gBAAgB,GAAG,aAAa,CAAC,EAAE;AAAA,EACrD,WAAW,EAAE,YAAY,MAAM,eAAe,KAAK;AAAA,EACnD,QAAQ;AAAA,IACN,iBAAiB;AAAA,IACjB,oBAAoB;AAAA,IACpB,sBAAsB,CAAC;AAAA,EACzB;AACF;AAEA,IAAI,UAA0B;AAGvB,SAAS,0BAA0B,MAA4B;AACpE,YAAU;AACZ;AAGO,SAAS,6BAAyC;AACvD,SAAO;AAAA,IAA4B;AAAA,IAAU,MAC3C,cAAc,sBAAsB,EAAE,UAAU,QAAQ,CAAC;AAAA,EAC3D;AACF;","names":[]}
@@ -0,0 +1,4 @@
1
+ import "./register-routes.ts";
2
+ export { BSC_GAS_READY_THRESHOLD, HEX_ADDRESS_RE, isAvaxChainName, isBscChainName, } from "./inventory/constants.ts";
3
+ export { getExplorerTokenUrl } from "./inventory/chainConfig.ts";
4
+ //# sourceMappingURL=register.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAM9B,OAAO,EACL,uBAAuB,EACvB,cAAc,EACd,eAAe,EACf,cAAc,GACf,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1,20 @@
1
+ import "./register-routes.js";
2
+ import {
3
+ BSC_GAS_READY_THRESHOLD,
4
+ HEX_ADDRESS_RE,
5
+ isAvaxChainName,
6
+ isBscChainName
7
+ } from "./inventory/constants.js";
8
+ import { getExplorerTokenUrl } from "./inventory/chainConfig.js";
9
+ if (typeof window === "undefined") {
10
+ void import("./register-terminal-view.js").then((m) => m.registerWalletTerminalView()).catch(() => {
11
+ });
12
+ }
13
+ export {
14
+ BSC_GAS_READY_THRESHOLD,
15
+ HEX_ADDRESS_RE,
16
+ getExplorerTokenUrl,
17
+ isAvaxChainName,
18
+ isBscChainName
19
+ };
20
+ //# sourceMappingURL=register.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/register.ts"],"sourcesContent":["import \"./register-routes.js\";\n\n// Re-export the chain/address constants consumers import from the package root.\n// The app build aliases `@elizaos/plugin-wallet-ui` to THIS module (side-effect\n// entry, not the full barrel), so importers like plugin-companion's walletUtils\n// (`import { isBscChainName } from \"@elizaos/plugin-wallet-ui\"`) resolve here.\nexport {\n BSC_GAS_READY_THRESHOLD,\n HEX_ADDRESS_RE,\n isAvaxChainName,\n isBscChainName,\n} from \"./inventory/constants.js\";\nexport { getExplorerTokenUrl } from \"./inventory/chainConfig.js\";\n\n// In a terminal host (the Node agent, no DOM), register the wallet inventory\n// view so it renders inline in the terminal. Lazy + DOM-guarded so the terminal\n// engine stays out of browser/mobile bundles.\nif (typeof window === \"undefined\") {\n void import(\"./register-terminal-view.js\")\n .then((m) => m.registerWalletTerminalView())\n .catch(() => {\n // Terminal rendering is best-effort; never block plugin load.\n });\n}\n"],"mappings":"AAAA,OAAO;AAMP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,2BAA2B;AAKpC,IAAI,OAAO,WAAW,aAAa;AACjC,OAAK,OAAO,6BAA6B,EACtC,KAAK,CAAC,MAAM,EAAE,2BAA2B,CAAC,EAC1C,MAAM,MAAM;AAAA,EAEb,CAAC;AACL;","names":[]}
package/dist/ui.d.ts ADDED
@@ -0,0 +1,13 @@
1
+ import "./register-routes.ts";
2
+ export { useWalletState } from "@elizaos/ui/state";
3
+ export { InventoryView } from "./InventoryView.tsx";
4
+ export { InventoryAppView } from "./components/InventoryAppView.tsx";
5
+ export { ChainIcon } from "./inventory/ChainIcon.tsx";
6
+ export { CHAIN_CONFIGS, type ChainConfig, type ChainKey, chainKeyToWalletRpcChain, getChainConfig, getContractLogoUrl, getExplorerTokenUrl, getExplorerTxUrl, getNativeLogoUrl, getStablecoinAddress, PRIMARY_CHAIN_KEYS, resolveChainKey, } from "./inventory/chainConfig.ts";
7
+ export { BSC_GAS_READY_THRESHOLD, BSC_GAS_THRESHOLD, HEX_ADDRESS_RE, isAvaxChainName, isBscChainName, type NftItem, type TokenRow, toNormalizedAddress, } from "./inventory/constants.ts";
8
+ export { TokenLogo } from "./inventory/TokenLogo.tsx";
9
+ export { useInventoryData } from "./inventory/useInventoryData.ts";
10
+ export { buildWalletRpcUpdateRequest, resolveInitialWalletRpcSelections, } from "./wallet-rpc.ts";
11
+ export { WALLET_STATUS_WIDGET } from "./widgets/wallet-status.helpers.ts";
12
+ export { WalletStatusSidebarWidget } from "./widgets/wallet-status.tsx";
13
+ //# sourceMappingURL=ui.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAE9B,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EACL,aAAa,EACb,KAAK,WAAW,EAChB,KAAK,QAAQ,EACb,wBAAwB,EACxB,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,GAChB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,uBAAuB,EACvB,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,cAAc,EACd,KAAK,OAAO,EACZ,KAAK,QAAQ,EACb,mBAAmB,GACpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EACL,2BAA2B,EAC3B,iCAAiC,GAClC,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC"}
package/dist/ui.js ADDED
@@ -0,0 +1,62 @@
1
+ import "./register-routes.js";
2
+ import { useWalletState } from "@elizaos/ui/state";
3
+ import { InventoryView } from "./InventoryView.js";
4
+ import { InventoryAppView } from "./components/InventoryAppView.js";
5
+ import { ChainIcon } from "./inventory/ChainIcon.js";
6
+ import {
7
+ CHAIN_CONFIGS,
8
+ chainKeyToWalletRpcChain,
9
+ getChainConfig,
10
+ getContractLogoUrl,
11
+ getExplorerTokenUrl,
12
+ getExplorerTxUrl,
13
+ getNativeLogoUrl,
14
+ getStablecoinAddress,
15
+ PRIMARY_CHAIN_KEYS,
16
+ resolveChainKey
17
+ } from "./inventory/chainConfig.js";
18
+ import {
19
+ BSC_GAS_READY_THRESHOLD,
20
+ BSC_GAS_THRESHOLD,
21
+ HEX_ADDRESS_RE,
22
+ isAvaxChainName,
23
+ isBscChainName,
24
+ toNormalizedAddress
25
+ } from "./inventory/constants.js";
26
+ import { TokenLogo } from "./inventory/TokenLogo.js";
27
+ import { useInventoryData } from "./inventory/useInventoryData.js";
28
+ import {
29
+ buildWalletRpcUpdateRequest,
30
+ resolveInitialWalletRpcSelections
31
+ } from "./wallet-rpc.js";
32
+ import { WALLET_STATUS_WIDGET } from "./widgets/wallet-status.helpers.js";
33
+ import { WalletStatusSidebarWidget } from "./widgets/wallet-status.js";
34
+ export {
35
+ BSC_GAS_READY_THRESHOLD,
36
+ BSC_GAS_THRESHOLD,
37
+ CHAIN_CONFIGS,
38
+ ChainIcon,
39
+ HEX_ADDRESS_RE,
40
+ InventoryAppView,
41
+ InventoryView,
42
+ PRIMARY_CHAIN_KEYS,
43
+ TokenLogo,
44
+ WALLET_STATUS_WIDGET,
45
+ WalletStatusSidebarWidget,
46
+ buildWalletRpcUpdateRequest,
47
+ chainKeyToWalletRpcChain,
48
+ getChainConfig,
49
+ getContractLogoUrl,
50
+ getExplorerTokenUrl,
51
+ getExplorerTxUrl,
52
+ getNativeLogoUrl,
53
+ getStablecoinAddress,
54
+ isAvaxChainName,
55
+ isBscChainName,
56
+ resolveChainKey,
57
+ resolveInitialWalletRpcSelections,
58
+ toNormalizedAddress,
59
+ useInventoryData,
60
+ useWalletState
61
+ };
62
+ //# sourceMappingURL=ui.js.map
package/dist/ui.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/ui.ts"],"sourcesContent":["import \"./register-routes.js\";\n\nexport { useWalletState } from \"@elizaos/ui/state\";\nexport { InventoryView } from \"./InventoryView.js\";\nexport { InventoryAppView } from \"./components/InventoryAppView.js\";\nexport { ChainIcon } from \"./inventory/ChainIcon.js\";\nexport {\n CHAIN_CONFIGS,\n type ChainConfig,\n type ChainKey,\n chainKeyToWalletRpcChain,\n getChainConfig,\n getContractLogoUrl,\n getExplorerTokenUrl,\n getExplorerTxUrl,\n getNativeLogoUrl,\n getStablecoinAddress,\n PRIMARY_CHAIN_KEYS,\n resolveChainKey,\n} from \"./inventory/chainConfig.js\";\nexport {\n BSC_GAS_READY_THRESHOLD,\n BSC_GAS_THRESHOLD,\n HEX_ADDRESS_RE,\n isAvaxChainName,\n isBscChainName,\n type NftItem,\n type TokenRow,\n toNormalizedAddress,\n} from \"./inventory/constants.js\";\nexport { TokenLogo } from \"./inventory/TokenLogo.js\";\nexport { useInventoryData } from \"./inventory/useInventoryData.js\";\nexport {\n buildWalletRpcUpdateRequest,\n resolveInitialWalletRpcSelections,\n} from \"./wallet-rpc.js\";\nexport { WALLET_STATUS_WIDGET } from \"./widgets/wallet-status.helpers.js\";\nexport { WalletStatusSidebarWidget } from \"./widgets/wallet-status.js\";\n"],"mappings":"AAAA,OAAO;AAEP,SAAS,sBAAsB;AAC/B,SAAS,qBAAqB;AAC9B,SAAS,wBAAwB;AACjC,SAAS,iBAAiB;AAC1B;AAAA,EACE;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAGA;AAAA,OACK;AACP,SAAS,iBAAiB;AAC1B,SAAS,wBAAwB;AACjC;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP,SAAS,4BAA4B;AACrC,SAAS,iCAAiC;","names":[]}