Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
c9cf096
Upgrade to Nuxt 4 & Prepare for Cloudflare Workers
xdeq Mar 18, 2026
ccc3ec1
Use rolldown
xdeq Mar 18, 2026
262ed02
Fix nitro config for wasm support
xdeq Mar 18, 2026
71c57ea
Test build.transpile
xdeq Mar 18, 2026
0d276e6
test vite.plugins.wasm
xdeq Mar 18, 2026
ee359b3
rm tests && add @takumi-rs/wasm
xdeq Mar 18, 2026
7a325b8
Add build:cf
xdeq Mar 18, 2026
c3505b2
fix NamespaceImage.takumi.vue styles
xdeq Mar 18, 2026
eac6457
Reduce --max-old-space-size
xdeq Mar 18, 2026
97e8f76
fix typo
xdeq Mar 18, 2026
0dc3afa
fix typo
xdeq Mar 18, 2026
e37715c
Increase --max_old_space_size=8192
xdeq Mar 19, 2026
f661016
replace max_old_space_size with nitro_debug=1
xdeq Mar 19, 2026
410b1f1
rm nitro debug
xdeq Mar 19, 2026
c0e92f9
test 4096
xdeq Mar 19, 2026
8ecac7f
replace takumi-rs with satori
xdeq Mar 19, 2026
4688f9c
increase max_old_space_size
xdeq Mar 19, 2026
b10c8b7
rm build:cf script
xdeq Mar 19, 2026
4823aed
test
xdeq Mar 19, 2026
1519b5d
rm buffer.js
xdeq Mar 19, 2026
ee35415
sync wrangler.jsonc: rm no_nodejs_compat_v2
xdeq Mar 19, 2026
edac80e
build:cf
xdeq Mar 19, 2026
c1d8399
amplitude -> posthog
xdeq Mar 19, 2026
74e0848
rm amp.init
xdeq Mar 19, 2026
0667101
test 2048
xdeq Mar 25, 2026
581fd37
fix lock file
xdeq Mar 25, 2026
81a1585
test 4096 (again)
xdeq Mar 25, 2026
659b9d3
add ram usage hook
xdeq Mar 25, 2026
c19e175
fix: lumina-node
xdeq Mar 25, 2026
4da5f06
fix(LightNodeModal): typo && fix hydration errors for BlockTimelineTa…
xdeq Mar 25, 2026
524b78e
Cleanup nuxt.config
xdeq Sep 22, 2026
8f437c9
move posthog creds to .env (public)
xdeq Sep 22, 2026
2d14fed
Update nitro preset to cloudflare-module
xdeq Sep 22, 2026
99e479f
cleanup for light node modal
xdeq Sep 22, 2026
fbd1ae2
fix(LightNodeModal): rm autostart feature
xdeq Sep 22, 2026
d45da38
upd nuxt version && cleanup
xdeq Sep 22, 2026
a15df86
rm Source Code Pro
xdeq Sep 22, 2026
b315aad
bump comp date
xdeq Sep 22, 2026
d1c3cc7
fix(nuxt.config): ignore posthog sm
xdeq Sep 22, 2026
e275a22
pull dev changes
xdeq Sep 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
Clone the repository and run on the root folder:

```
pnpm i
pnpm dev
bun i
bun dev
```

### Node.js Server
Expand Down
38 changes: 17 additions & 21 deletions app.vue → app/app.vue
Original file line number Diff line number Diff line change
@@ -1,29 +1,28 @@
<script setup>
/** Services */
import Socket from "@/services/api/socket"
import amp from "@/services/amp"
import { watchForUpdate } from "@/services/version"
import { DEFAULT_SETTINGS } from "@/services/constants/settings.js"
import { isPrefersDarkScheme, getNetworkName } from "@/services/utils"
import Socket from "~/services/api/socket.js"
import { watchForUpdate } from "~/services/version.js"
import { DEFAULT_SETTINGS } from "~/services/constants/settings.js"
import { isPrefersDarkScheme, getNetworkName } from "~/services/utils/index.js"

/** Components */
import ModalsManager from "@/components/modals/ModalsManager.vue"
import CommandMenu from "@/components/cmd/CommandMenu.vue"
import ModalsManager from "~/components/modals/ModalsManager.vue"
import CommandMenu from "~/components/cmd/CommandMenu.vue"

/** API */
import { fetchGasPrice } from "@/services/api/gas"
import { fetchHead } from "@/services/api/main"
import { fetchLatestBlocks } from "@/services/api/block"
import { fetchBlobsState } from "@/services/api/main"
import { fetchGasPrice } from "~/services/api/gas.js"
import { fetchHead } from "~/services/api/main.js"
import { fetchLatestBlocks } from "~/services/api/block.js"
import { fetchBlobsState } from "~/services/api/main.js"

/** Store */
import { useNodeStore } from "@/store/node.store"
import { useAppStore } from "@/store/app.store"
import { useBookmarksStore } from "@/store/bookmarks.store"
import { useSettingsStore } from "@/store/settings.store"
import { useEnumStore } from "@/store/enums.store"
import { useLegalStore } from "@/store/legal.store"
import { useNotificationsStore } from "@/store/notifications.store"
import { useNodeStore } from "~/store/node.store.js"
import { useAppStore } from "~/store/app.store.js"
import { useBookmarksStore } from "~/store/bookmarks.store.js"
import { useSettingsStore } from "~/store/settings.store.js"
import { useEnumStore } from "~/store/enums.store.js"
import { useLegalStore } from "~/store/legal.store.js"
import { useNotificationsStore } from "~/store/notifications.store.js"

const nodeStore = useNodeStore()
const appStore = useAppStore()
Expand Down Expand Up @@ -141,9 +140,6 @@ onMounted(async () => {

appStore.initGlobalUpdates()

const runtimeConfig = useRuntimeConfig()
amp.init(runtimeConfig.public.AMP)

const data = await fetchLatestBlocks({ limit: 100 })
appStore.latestBlocks = data
appStore.isLatestBlocksLoaded = true
Expand Down
File renamed without changes.
File renamed without changes
File renamed without changes
8 changes: 1 addition & 7 deletions assets/styles/base.scss → app/assets/styles/base.scss
Original file line number Diff line number Diff line change
Expand Up @@ -214,11 +214,6 @@ $grayscale: (
--geo-map: #8b8c8d;
}

@font-face {
font-family: "DS";
src: local("DS"), url(~/assets/fonts/DS-DIGI.TTF) format("truetype");
}

*,
*::before,
*::after {
Expand Down Expand Up @@ -267,8 +262,7 @@ body {

background: var(--app-background);

font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans",
"Helvetica Neue", sans-serif;
font-family: 'Inter', sans-serif;
text-rendering: optimizeLegibility;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
Expand Down
File renamed without changes.
File renamed without changes.
8 changes: 4 additions & 4 deletions components/ActionBar.vue → app/components/ActionBar.vue
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,16 @@
/**
* UI
*/
import Button from "@/components/ui/Button.vue"
import Button from "~/components/ui/Button.vue"

/** Components */
import Search from "@/components/modules/navigation/Search.vue"
import Search from "~/components/modules/navigation/Search.vue"

/** Utils */
import { isMobile } from "@/services/utils"
import { isMobile } from "~/services/utils/index.js"

/** Store */
import { useAppStore } from "@/store/app.store"
import { useAppStore } from "~/store/app.store.js"

const appStore = useAppStore()
</script>
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
<script setup>
/** Services */
import { amountToString } from "@/services/utils"
import { amountToString } from "~/services/utils/index.js"

/** UI */
import Tooltip from "@/components/ui/Tooltip.vue"
import Tooltip from "~/components/ui/Tooltip.vue"

/** Store */
import { useAppStore } from "@/store/app.store"
import { useAppStore } from "~/store/app.store.js"
const appStore = useAppStore()

const currentPrice = computed(() => appStore.currentPrice)
Expand Down
18 changes: 7 additions & 11 deletions components/Auth.vue → app/components/Auth.vue
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
<script setup>
/** UI */
import Button from "@/components/ui/Button.vue"
import { Dropdown, DropdownItem } from "@/components/ui/Dropdown"
import Button from "~/components/ui/Button.vue"
import { Dropdown, DropdownItem } from "~/components/ui/Dropdown/index.js"

/** Store */
import { useAuthStore } from "@/store/auth.store.js"
import { useModalsStore } from "@/store/modals.store.js"
import { useAuthStore } from "~/store/auth.store.js"
import { useModalsStore } from "~/store/modals.store.js"

const authStore = useAuthStore()
const modalsStore = useModalsStore()
Expand All @@ -32,15 +32,11 @@ onMounted(() => {
</Button>

<template #popup>
<DropdownItem @click="modalsStore.open('settings')">
Settings
</DropdownItem>
<DropdownItem @click="logout">
Logout
</DropdownItem>
<DropdownItem @click="modalsStore.open('settings')"> Settings </DropdownItem>
<DropdownItem @click="logout"> Logout </DropdownItem>
</template>
</Dropdown>

<Button v-else @click="login" type="white" size="mini">Login</Button>
</template>
>
>
4 changes: 2 additions & 2 deletions components/BadgeValue.vue → app/components/BadgeValue.vue
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@
/**
* Services
*/
import { space } from "@/services/utils"
import { space } from "~/services/utils/index.js"

/** Store */
import { useNotificationsStore } from "@/store/notifications.store"
import { useNotificationsStore } from "~/store/notifications.store.js"
const notificationsStore = useNotificationsStore()

const props = defineProps({
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
<script setup>
/** UI */
import Button from "@/components/ui/Button.vue"
import Button from "~/components/ui/Button.vue"

/** Services */
import { capitilize } from "@/services/utils"
import { capitilize } from "~/services/utils/index.js"

/** Store */
import { useBookmarksStore } from "@/store/bookmarks.store"
import { useCacheStore } from "@/store/cache.store"
import { useModalsStore } from "@/store/modals.store"
import { useNotificationsStore } from "@/store/notifications.store"
import { useBookmarksStore } from "~/store/bookmarks.store.js"
import { useCacheStore } from "~/store/cache.store.js"
import { useModalsStore } from "~/store/modals.store.js"
import { useNotificationsStore } from "~/store/notifications.store.js"
const bookmarksStore = useBookmarksStore()
const cacheStore = useCacheStore()
const modalsStore = useModalsStore()
Expand Down
File renamed without changes.
15 changes: 8 additions & 7 deletions components/Connection.vue → app/components/Connection.vue
Original file line number Diff line number Diff line change
@@ -1,24 +1,25 @@
<script setup>
/** UI */
import Button from "@/components/ui/Button.vue"
import { Dropdown, DropdownTitle, DropdownItem, DropdownDivider } from "@/components/ui/Dropdown"
import Button from "~/components/ui/Button.vue"
import { Dropdown, DropdownTitle, DropdownItem, DropdownDivider } from "~/components/ui/Dropdown/index.js"

/** Services */
import amp from "@/services/amp"
import { disconnect } from "@/services/wallet"
import { mainnet, mocha } from "@/services/chains"

/** Store */
import { useAppStore } from "@/store/app.store"
import { useModalsStore } from "@/store/modals.store"
import { useNotificationsStore } from "@/store/notifications.store"
import { useAppStore } from "~/store/app.store.js"
import { useModalsStore } from "~/store/modals.store.js"
import { useNotificationsStore } from "~/store/notifications.store.js"

const appStore = useAppStore()
const modalsStore = useModalsStore()
const notificationsStore = useNotificationsStore()

const router = useRouter()

const ph = usePostHog()

const { hostname } = useRequestURL()

switch (hostname) {
Expand Down Expand Up @@ -64,7 +65,7 @@ const handleChangeWallet = () => {
const handleDisconnect = () => {
disconnect()

amp.log("disconnect")
ph.capture("wallet_disconnect")

appStore.address = ""
appStore.balance = 0
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<script setup>
/** Store */
import { useNotificationsStore } from "@/store/notifications.store"
import { useNotificationsStore } from "~/store/notifications.store.js"
const notificationsStore = useNotificationsStore()

const props = defineProps({
Expand Down
8 changes: 4 additions & 4 deletions components/DatePicker.vue → app/components/DatePicker.vue
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,14 @@
import { DateTime, Info } from "luxon"

/** Stats Constants */
import { STATS_PERIODS } from "@/services/constants/stats.js"
import { STATS_PERIODS } from "~/services/constants/stats.js"

/** UI */
import Button from "@/components/ui/Button.vue"
import Popover from "@/components/ui/Popover.vue"
import Button from "~/components/ui/Button.vue"
import Popover from "~/components/ui/Popover.vue"

/** Utils */
import { isMobile } from "@/services/utils"
import { isMobile } from "~/services/utils/index.js"

const props = defineProps({
period: {
Expand Down
31 changes: 17 additions & 14 deletions components/Feed.vue → app/components/Feed.vue
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,19 @@
import { DateTime } from "luxon"

/** Services */
import { abbreviate, capitilize, comma, formatBytes, isMainnet, roundTo } from "@/services/utils"
import { getRankCategory } from "@/services/constants/rollups"
import { quoteServiceURL, rollupRankingServiceURL } from "@/services/config"
import { abbreviate, capitilize, comma, formatBytes, isMainnet, roundTo } from "~/services/utils/index.js"
import { getRankCategory } from "~/services/constants/rollups.js"
import { quoteServiceURL, rollupRankingServiceURL } from "~/services/config.js"

/** UI */
import Tooltip from "@/components/ui/Tooltip.vue"
import Tooltip from "~/components/ui/Tooltip.vue"

/** API */
import { fetchRollupsRanking } from "@/services/api/rollup"
import { fetchPriceSeries, fetchSummary, fetchTVS } from "@/services/api/stats"
import { fetchRollupsRanking } from "~/services/api/rollup.js"
import { fetchPriceSeries, fetchSummary, fetchTVS } from "~/services/api/stats.js"

/** Store */
import { useAppStore } from "@/store/app.store"
import { useAppStore } from "~/store/app.store.js"
const appStore = useAppStore()

const head = computed(() => appStore.lastHead)
Expand Down Expand Up @@ -63,11 +63,14 @@ onMounted(async () => {
topRollup.value = {
..._r,
category: getRankCategory(roundTo(_r.rank / 10, 0)),
name: _r.slug.split("-").map(el => capitilize(el)).join(" "),
name: _r.slug
.split("-")
.map((el) => capitilize(el))
.join(" "),
}
}
}

const _tvs = await fetchTVS({ period: null })
if (_tvs.value) {
appStore.tvs = _tvs.value
Expand Down Expand Up @@ -116,7 +119,9 @@ onMounted(async () => {
<Flex direction="column" gap="8">
<Flex align="center" justify="between" gap="8">
<Text size="12" weight="500" color="tertiary">Rank:</Text>
<Text size="12" weight="600" :color="topRollup?.category?.color"> {{ topRollup?.category?.name }} </Text>
<Text size="12" weight="600" :color="topRollup?.category?.color">
{{ topRollup?.category?.name }}
</Text>
</Flex>
<Flex align="center" justify="between" gap="8">
<Text size="12" weight="500" color="tertiary">Score:</Text>
Expand All @@ -129,7 +134,7 @@ onMounted(async () => {

<div :class="$style.dot" />
</template>

<Tooltip>
<Flex align="center" gap="6" :class="$style.stat">
<Icon name="coins" size="12" color="secondary" :class="$style.icon" />
Expand Down Expand Up @@ -159,9 +164,7 @@ onMounted(async () => {
<Flex align="center" gap="4">
<Text size="12" weight="500" color="tertiary" noWrap :class="$style.key">Txs:</Text>

<Text v-if="!isLoading" size="12" weight="600" noWrap :class="$style.value">{{
abbreviate(txCount24h)
}}</Text>
<Text v-if="!isLoading" size="12" weight="600" noWrap :class="$style.value">{{ abbreviate(txCount24h) }}</Text>
<Skeleton v-else w="40" h="12" />
</Flex>
</Flex>
Expand Down
File renamed without changes.
File renamed without changes.
2 changes: 1 addition & 1 deletion components/Icon.vue → app/components/Icon.vue
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<script setup>
import { computed } from "vue"

import icons from "@/assets/icons.json"
import icons from "~/assets/icons.json"

const props = defineProps({
name: { type: String, required: true, default: "" },
Expand Down
26 changes: 13 additions & 13 deletions components/LeftSidebar.vue → app/components/LeftSidebar.vue
Original file line number Diff line number Diff line change
@@ -1,25 +1,25 @@
<script setup>
/** UI */
import Button from "@/components/ui/Button.vue"
import { Dropdown, DropdownItem, DropdownTitle, DropdownDivider } from "@/components/ui/Dropdown"
import Button from "~/components/ui/Button.vue"
import { Dropdown, DropdownItem, DropdownTitle, DropdownDivider } from "~/components/ui/Dropdown/index.js"

/** Components */
import AdvBanner from "@/components/shared/AdvBanner.vue"
import NavLink from "@/components/modules/navigation/NavLink.vue"
import AdvBanner from "~/components/shared/AdvBanner.vue"
import NavLink from "~/components/modules/navigation/NavLink.vue"

/** Utils */
import { getNetworkName } from "@/services/utils/general"
import { StatusMap } from "@/services/constants/node"
import { isMainnet, isMobile } from "@/services/utils"
import { nodeStatsURL } from "@/services/config"
import { isSelfhosted } from "@/services/config.js"
import { DEFAULT_SETTINGS } from "@/services/constants/settings.js"
import { getNetworkName } from "~/services/utils/general.js"
import { StatusMap } from "~/services/constants/node.js"
import { isMainnet, isMobile } from "~/services/utils/index.js"
import { nodeStatsURL } from "~/services/config.js"
import { isSelfhosted } from "~/services/config.js"
import { DEFAULT_SETTINGS } from "~/services/constants/settings.js"

/** Store */
import { useAppStore } from "@/store/app.store"
import { useAppStore } from "~/store/app.store.js"
import { useAuthStore } from "~/store/auth.store.js"
import { useNodeStore } from "@/store/node.store"
import { useModalsStore } from "@/store/modals.store"
import { useNodeStore } from "~/store/node.store.js"
import { useModalsStore } from "~/store/modals.store.js"

const appStore = useAppStore()
const nodeStore = useNodeStore()
Expand Down
Loading
Loading