From c9cf096853ae62258946e33aade95c9900a7529f Mon Sep 17 00:00:00 2001 From: xdeq Date: Wed, 18 Mar 2026 04:59:45 +0300 Subject: [PATCH 01/39] Upgrade to Nuxt 4 & Prepare for Cloudflare Workers --- README.md | 4 +- app.vue => app/app.vue | 60 +- {assets => app/assets}/icons.json | 0 {assets => app/assets}/logos/keplr.png | Bin {assets => app/assets}/logos/leap.png | Bin {assets => app/assets}/styles/base.scss | 8 +- {assets => app/assets}/styles/flex.scss | 0 {assets => app/assets}/styles/text.scss | 0 {assets => app/assets}/workers/worker.js | 2 +- {components => app/components}/ActionBar.vue | 8 +- .../components}/AddressBadge.vue | 0 .../components}/AmountInCurrency.vue | 6 +- {components => app/components}/Auth.vue | 18 +- {components => app/components}/BadgeValue.vue | 4 +- .../components}/BookmarkButton.vue | 12 +- .../components}/Breadcrumbs.vue | 0 {components => app/components}/Connection.vue | 16 +- {components => app/components}/CopyButton.vue | 2 +- {components => app/components}/DatePicker.vue | 8 +- {components => app/components}/Feed.vue | 31 +- {components => app/components}/Flex.vue | 0 {components => app/components}/GasBar.vue | 0 {components => app/components}/Icon.vue | 2 +- .../components}/LeftSidebar.vue | 65 +- .../components}/Notifications.vue | 9 +- .../OgImage/AddressImage.takumi.vue | 34 +- .../components/OgImage/BlockImage.takumi.vue | 31 +- .../OgImage/NamespaceImage.takumi.vue | 2 +- .../OgImage/ProposalImage.takumi.vue | 37 +- .../components/OgImage/RollupImage.takumi.vue | 39 +- .../components/OgImage/TxImage.takumi.vue | 35 +- .../OgImage/UpgradeImage.takumi.vue | 41 +- .../OgImage/ValidatorImage.takumi.vue | 40 +- {components => app/components}/Outline.vue | 0 {components => app/components}/Skeleton.vue | 0 {components => app/components}/Text.vue | 0 {components => app/components}/TheFooter.vue | 47 +- .../components}/cmd/CommandMenu.vue | 69 +- {components => app/components}/cmd/Item.vue | 0 .../components}/cmd/custom/FeeCalculator.vue | 4 +- .../BlocksTimeline/BlocksTimelineTable.vue | 18 +- .../components}/data/LatestPFBTable.vue | 12 +- .../data/RecentNamespacesTable.vue | 10 +- .../components}/modals/APIModal.vue | 6 +- .../components}/modals/AwaitingModal.vue | 14 +- .../components}/modals/BlobModal.vue | 16 +- .../components}/modals/ChangeBlobModal.vue | 8 +- .../components}/modals/ChartModal.vue | 14 +- .../components}/modals/CommitmentModal.vue | 10 +- .../components}/modals/ConfirmationModal.vue | 6 +- .../components}/modals/ConnectModal.vue | 20 +- .../modals/EditBookmarkAliasModal.vue | 12 +- .../components}/modals/HexSettingsModal.vue | 10 +- .../modals/HyperlaneMailboxModal.vue | 8 +- .../modals/HyperlaneTokenModal.vue | 8 +- .../modals/HyperlaneTransferModal.vue | 12 +- .../components}/modals/IBCClientModal.vue | 18 +- .../components}/modals/IBCTransferModal.vue | 24 +- .../modals/ImportBookmarksModal.vue | 10 +- .../components}/modals/LightNodeModal.vue | 35 +- .../modals/LightNodeSettingsModal.vue | 18 +- .../components}/modals/LoginModal.vue | 13 +- .../components}/modals/ModalsManager.vue | 17 +- .../components}/modals/ODSModal.vue | 12 +- .../components}/modals/PayForBlobModal.vue | 24 +- .../components}/modals/QRCodeModal.vue | 4 +- .../components}/modals/RawDataModal.vue | 10 +- .../components}/modals/RollupRankModal.vue | 25 +- .../components}/modals/SendModal.vue | 26 +- .../components}/modals/SettingsModal.vue | 57 +- .../components}/modals/SignupModal.vue | 51 +- .../components}/modals/StakingModal.vue | 26 +- .../modals/VestingDetailsModal.vue | 12 +- .../modules/address/AddressCharts.vue | 29 +- .../modules/address/AddressOverview.vue | 32 +- .../modules/address/VotesTable.vue | 12 +- .../address/tables/DelegationsTable.vue | 7 +- .../modules/address/tables/GrantersTable.vue | 10 +- .../modules/address/tables/GrantsTable.vue | 10 +- .../address/tables/RedelegationsTable.vue | 11 +- .../address/tables/TransactionsTable.vue | 8 +- .../address/tables/UndelegationsTable.vue | 11 +- .../modules/address/tables/VestingsTable.vue | 10 +- .../modules/blob/DataInspector.vue | 2 +- .../components}/modules/blob/HexViewer.vue | 0 .../components}/modules/blob/Preview.vue | 0 .../components}/modules/block/BlobsTable.vue | 18 +- .../modules/block/BlockOverview.vue | 40 +- .../modules/block/UpcomingBlockCard.vue | 25 +- .../modules/bookmarks/BookmarkItem.vue | 6 +- .../modules/gas/GasEfficiencyChart.vue | 4 +- .../modules/gas/GasFeeCalculator.vue | 6 +- .../components}/modules/gas/GasPriceChart.vue | 4 +- .../modules/gas/GasPriceHeatmap.vue | 4 +- .../hyperlane/LatestTransfersTable.vue | 12 +- .../modules/hyperlane/MailboxesTable.vue | 8 +- .../modules/hyperlane/TokensTable.vue | 10 +- .../modules/hyperlane/TransfersTable.vue | 10 +- .../modules/ibc/ChainClientsTable.vue | 12 +- .../components}/modules/ibc/ChainOverview.vue | 2 +- .../modules/ibc/ChainTransfersTable.vue | 16 +- .../components}/modules/ibc/ChainsTable.vue | 6 +- .../modules/ibc/ConnectionCard.vue | 8 +- .../components}/modules/ibc/GraphSidebar.vue | 14 +- .../components}/modules/ibc/IBCGraph.vue | 2 +- .../modules/ibc/LargestChainsTable.vue | 6 +- .../modules/ibc/LatestTransfersTable.vue | 12 +- .../components}/modules/ibc/NotableStats.vue | 25 +- .../modules/ibc/TransfersTable.vue | 12 +- .../modules/namespace/NamespaceCharts.vue | 21 +- .../modules/namespace/NamespaceOverview.vue | 16 +- .../modules/namespace/tables/BlobsTable.vue | 8 +- .../namespace/tables/MessagesTable.vue | 6 +- .../modules/navigation/NavLink.vue | 0 .../components}/modules/navigation/Search.vue | 6 +- .../modules/proposal/ProposalChanges.vue | 2 +- .../modules/proposal/ProposalDescription.vue | 14 +- .../modules/proposal/ProposalOverview.vue | 50 +- .../modules/proposal/ProposalTimeline.vue | 2 +- .../modules/proposal/VotesAllocation.vue | 8 +- .../modules/proposal/VotesTable.vue | 20 +- .../modules/proposal/VotingPower.vue | 32 +- .../modules/rollup/RollupCharts.vue | 49 +- .../modules/rollup/RollupOverview.vue | 31 +- .../modules/rollup/tables/BlobsTable.vue | 8 +- .../modules/rollup/tables/NamespacesTable.vue | 4 +- .../components}/modules/stats/BarChart.vue | 2 +- .../modules/stats/BarplotChartCard.vue | 384 + .../modules/stats/BarplotStakedChart.vue | 2 +- .../stats/BarplotStakedRollupChart.vue | 2 +- .../components}/modules/stats/BlocksFeed.vue | 16 +- .../modules/stats/ChartCardPreview.vue | 37 +- app/components/modules/stats/DiffChip.vue | 96 + .../components}/modules/stats/GeoMap.vue | 95 +- .../modules/stats/HighlightCard.vue | 49 +- .../components}/modules/stats/InsightCard.vue | 4 +- .../components}/modules/stats/LineChart.vue | 2 +- .../stats/ParallelCoordinatesChart.vue | 707 ++ .../modules/stats/PieChartCard.vue | 2 +- .../components}/modules/stats/RadarChart.vue | 2 +- .../modules/stats/RollupsActivity.vue | 8 +- .../modules/stats/RollupsActivityGraph.vue | 57 + .../modules/stats/RollupsActivityTable.vue | 351 + .../modules/stats/RollupsBubbleChart.vue | 4 +- .../modules/stats/SquareSizeCard.vue | 4 +- .../modules/stats/SquareSizeChart.vue | 4 +- .../modules/stats/TimelineSlider.vue | 0 .../modules/stats/tabs/BlocksTab.vue | 8 +- .../modules/stats/tabs/GeneralTab.vue | 18 +- .../modules/stats/tabs/NodesTab.vue | 62 +- .../modules/stats/tabs/RollupsTab.vue | 26 +- .../components}/modules/tx/MessagesTable.vue | 10 +- .../components}/modules/tx/TxOverview.vue | 22 +- .../modules/upgrade/SignalsTable.vue | 20 +- .../modules/upgrade/UpgradeOverview.vue | 119 +- .../modules/validator/ValidatorCharts.vue | 37 +- .../modules/validator/ValidatorMetrics.vue | 309 + .../modules/validator/ValidatorOverview.vue | 26 +- .../modules/validator/ValidatorUptime.vue | 81 + .../modules/validator/tables/BlocksTable.vue | 27 +- .../validator/tables/DelegatorsTable.vue | 19 +- .../modules/validator/tables/JailsTable.vue | 4 +- .../validator/tables/MessagesTable.vue | 48 +- .../modules/validator/tables/SignalsTable.vue | 17 +- .../modules/validator/tables/VotesTable.vue | 4 +- .../components}/shared/AdvBanner.vue | 4 +- .../components}/shared/ChartOnEntityPage.vue | 22 +- .../components}/shared/MessageTypeBadge.vue | 4 +- .../shared/TablePlaceholderView.vue | 0 .../components}/shared/tables/Events.vue | 14 +- .../shared/tables/UpcomingUpdate.vue | 0 {components => app/components}/ui/Badge.vue | 0 {components => app/components}/ui/Button.vue | 0 .../components}/ui/Checkbox.vue | 0 .../ui/Dropdown/DropdownContainer.vue | 7 +- .../ui/Dropdown/DropdownDivider.vue | 0 .../components}/ui/Dropdown/DropdownItem.vue | 0 .../components}/ui/Dropdown/DropdownTitle.vue | 0 .../ui/Dropdown/DropdownTrigger.vue | 0 .../components}/ui/Dropdown/index.js | 0 {components => app/components}/ui/Input.vue | 0 {components => app/components}/ui/Kbd.vue | 0 {components => app/components}/ui/Modal.vue | 8 +- {components => app/components}/ui/Popover.vue | 7 +- {components => app/components}/ui/Radio.vue | 0 {components => app/components}/ui/Spinner.vue | 0 {components => app/components}/ui/Toggle.vue | 0 {components => app/components}/ui/Tooltip.vue | 0 .../components}/widgets/BlobsWidget.vue | 6 +- .../components}/widgets/BlockWidget.vue | 8 +- .../components}/widgets/GasWidget.vue | 4 +- .../widgets/GlobalUpdatesWidget.vue | 79 +- .../components}/widgets/StakingWidget.vue | 12 +- .../widgets/TransactionsWidget.vue | 17 +- .../components}/widgets/Widgets.vue | 0 {composables => app/composables}/filters.js | 0 {composables => app/composables}/outside.js | 0 error.vue => app/error.vue | 12 +- {layouts => app/layouts}/default.vue | 2 +- {layouts => app/layouts}/widgets.vue | 5 +- .../middleware}/rollup-redirect.global.ts | 0 {pages => app/pages}/address/[hash].vue | 14 +- {pages => app/pages}/addresses.vue | 10 +- {pages => app/pages}/auth/callback.vue | 4 +- {pages => app/pages}/blob-fest.vue | 0 {pages => app/pages}/blob.vue | 20 +- {pages => app/pages}/blobstream.vue | 12 +- {pages => app/pages}/block/[height].vue | 14 +- {pages => app/pages}/blocks.vue | 10 +- {pages => app/pages}/bookmarks.vue | 14 +- {pages => app/pages}/brussels-ctf.vue | 0 {pages => app/pages}/calculators/savings.vue | 6 +- {pages => app/pages}/constants.vue | 14 +- {pages => app/pages}/faucet.vue | 28 +- {pages => app/pages}/gas.vue | 14 +- {pages => app/pages}/hyperlane/index.vue | 6 +- {pages => app/pages}/hyperlane/transfers.vue | 15 +- {pages => app/pages}/ibc/chain/[id].vue | 6 +- {pages => app/pages}/ibc/chains.vue | 14 +- {pages => app/pages}/ibc/graph.vue | 0 {pages => app/pages}/ibc/index.vue | 10 +- {pages => app/pages}/ibc/transfer/[id].vue | 0 {pages => app/pages}/ibc/transfers.vue | 14 +- {pages => app/pages}/index.vue | 12 +- {pages => app/pages}/namespace/[id].vue | 12 +- {pages => app/pages}/namespaces/index.vue | 10 +- .../pages}/namespaces/treemap/index.vue | 8 +- {pages => app/pages}/network/[slug].vue | 14 +- {pages => app/pages}/network/rank/[slug].vue | 32 +- {pages => app/pages}/networks/index.vue | 69 +- app/pages/privacy-policy.vue | 923 ++ {pages => app/pages}/proposal/[id].vue | 14 +- {pages => app/pages}/proposals.vue | 14 +- {pages => app/pages}/stats/[metric].vue | 91 +- {pages => app/pages}/stats/index.vue | 12 +- app/pages/terms-of-use.vue | 568 + {pages => app/pages}/tx/[hash].vue | 12 +- {pages => app/pages}/txs.vue | 26 +- {pages => app/pages}/upgrade/[version].vue | 44 +- {pages => app/pages}/upgrades.vue | 39 +- {pages => app/pages}/validator/[id].vue | 14 +- {pages => app/pages}/validators.vue | 22 +- {pages => app/pages}/widgets/networks.vue | 14 +- {plugins => app/plugins}/force.client.js | 0 {plugins => app/plugins}/globalFunctions.js | 4 +- {plugins => app/plugins}/goog.client.js | 6 +- {plugins => app/plugins}/lumina.client.js | 14 +- {services => app/services}/amp.js | 0 {services => app/services}/api/address.js | 0 {services => app/services}/api/blobstream.js | 0 {services => app/services}/api/block.js | 0 {services => app/services}/api/faucet.js | 0 {services => app/services}/api/gas.js | 0 {services => app/services}/api/hyperlane.js | 0 {services => app/services}/api/ibc.js | 0 {services => app/services}/api/main.js | 0 {services => app/services}/api/namespace.js | 0 {services => app/services}/api/proposal.js | 0 {services => app/services}/api/rollup.js | 0 {services => app/services}/api/search.js | 0 {services => app/services}/api/socket.js | 2 +- {services => app/services}/api/stats.js | 0 {services => app/services}/api/tx.js | 0 {services => app/services}/api/validator.js | 0 {services => app/services}/auth.js | 0 {services => app/services}/chains.js | 0 {services => app/services}/config.js | 4 +- .../services}/constants/advertising.js | 0 {services => app/services}/constants/enums.js | 0 {services => app/services}/constants/ibc.js | 0 {services => app/services}/constants/legal.js | 0 .../services}/constants/mapping.js | 0 {services => app/services}/constants/node.js | 0 .../services}/constants/rollups.js | 0 .../services}/constants/settings.js | 0 {services => app/services}/constants/stats.js | 0 .../services}/constants/updates.js | 0 {services => app/services}/editor/creator.js | 0 {services => app/services}/editor/theme.js | 2 +- .../lumina-node-wasm/lumina_node_wasm.d.ts | 0 .../lumina-node-wasm/lumina_node_wasm.js | 0 .../lumina-node-wasm/lumina_node_wasm_bg.js | 0 .../lumina-node-wasm/lumina_node_wasm_bg.wasm | Bin .../lumina_node_wasm_bg.wasm.d.ts | 0 {services => app/services}/notifications.js | 0 {services => app/services}/proto/gen/any.ts | 0 {services => app/services}/proto/gen/bank.ts | 0 {services => app/services}/proto/gen/coin.ts | 0 {services => app/services}/proto/gen/keys.ts | 0 .../services}/proto/gen/msg_send.ts | 0 .../services}/proto/gen/multisig.ts | 0 .../services}/proto/gen/signing.ts | 0 .../services}/proto/gen/staking.ts | 0 {services => app/services}/proto/gen/tx.ts | 0 {services => app/services}/utils/amounts.js | 0 {services => app/services}/utils/blob.js | 0 {services => app/services}/utils/blobtx.js | 0 {services => app/services}/utils/d3.js | 0 {services => app/services}/utils/encode.js | 2 +- .../services}/utils/entityCharts.js | 0 {services => app/services}/utils/export.js | 0 {services => app/services}/utils/general.js | 0 app/services/utils/index.js | 5 + .../services}/utils/msgpayforblobs.js | 0 {services => app/services}/utils/states.js | 0 {services => app/services}/utils/strings.js | 0 {services => app/services}/utils/tree.js | 2 +- {services => app/services}/version.js | 0 {services => app/services}/wallet.js | 6 +- {store => app/store}/app.store.js | 4 +- {store => app/store}/auth.store.js | 0 {store => app/store}/bookmarks.store.js | 0 {store => app/store}/cache.store.js | 0 {store => app/store}/enums.store.js | 0 {store => app/store}/legal.store.js | 0 {store => app/store}/modals.store.js | 0 {store => app/store}/node.store.js | 0 {store => app/store}/notifications.store.js | 3 +- {store => app/store}/settings.store.js | 0 assets/fonts/DS-DIGI.TTF | Bin 24448 -> 0 bytes bun.lock | 2447 +++++ components/modules/stats/BarplotChartCard.vue | 386 - components/modules/stats/DiffChip.vue | 98 - .../stats/ParallelCoordinatesChart.vue | 716 -- .../modules/stats/RollupsActivityGraph.vue | 59 - .../modules/stats/RollupsActivityTable.vue | 347 - .../modules/validator/ValidatorMetrics.vue | 300 - .../modules/validator/ValidatorUptime.vue | 82 - nuxt.config.ts | 63 +- package.json | 27 +- pages/privacy-policy.vue | 472 - pages/terms-of-use.vue | 322 - pnpm-lock.yaml | 9721 ----------------- services/utils/index.js | 5 - 334 files changed, 7803 insertions(+), 14248 deletions(-) rename app.vue => app/app.vue (71%) rename {assets => app/assets}/icons.json (100%) rename {assets => app/assets}/logos/keplr.png (100%) rename {assets => app/assets}/logos/leap.png (100%) rename {assets => app/assets}/styles/base.scss (96%) rename {assets => app/assets}/styles/flex.scss (100%) rename {assets => app/assets}/styles/text.scss (100%) rename {assets => app/assets}/workers/worker.js (50%) rename {components => app/components}/ActionBar.vue (83%) rename {components => app/components}/AddressBadge.vue (100%) rename {components => app/components}/AmountInCurrency.vue (95%) rename {components => app/components}/Auth.vue (62%) rename {components => app/components}/BadgeValue.vue (93%) rename {components => app/components}/BookmarkButton.vue (88%) rename {components => app/components}/Breadcrumbs.vue (100%) rename {components => app/components}/Connection.vue (85%) rename {components => app/components}/CopyButton.vue (91%) rename {components => app/components}/DatePicker.vue (98%) rename {components => app/components}/Feed.vue (93%) rename {components => app/components}/Flex.vue (100%) rename {components => app/components}/GasBar.vue (100%) rename {components => app/components}/Icon.vue (98%) rename {components => app/components}/LeftSidebar.vue (90%) rename {components => app/components}/Notifications.vue (95%) rename components/OgImage/AddressImage.vue => app/components/OgImage/AddressImage.takumi.vue (78%) rename components/OgImage/BlockImage.vue => app/components/OgImage/BlockImage.takumi.vue (77%) rename components/OgImage/NamespaceImage.vue => app/components/OgImage/NamespaceImage.takumi.vue (96%) rename components/OgImage/ProposalImage.vue => app/components/OgImage/ProposalImage.takumi.vue (81%) rename components/OgImage/RollupImage.vue => app/components/OgImage/RollupImage.takumi.vue (66%) rename components/OgImage/TxImage.vue => app/components/OgImage/TxImage.takumi.vue (84%) rename components/OgImage/UpgradeImage.vue => app/components/OgImage/UpgradeImage.takumi.vue (73%) rename components/OgImage/ValidatorImage.vue => app/components/OgImage/ValidatorImage.takumi.vue (62%) rename {components => app/components}/Outline.vue (100%) rename {components => app/components}/Skeleton.vue (100%) rename {components => app/components}/Text.vue (100%) rename {components => app/components}/TheFooter.vue (93%) rename {components => app/components}/cmd/CommandMenu.vue (94%) rename {components => app/components}/cmd/Item.vue (100%) rename {components => app/components}/cmd/custom/FeeCalculator.vue (97%) rename {components => app/components}/data/BlocksTimeline/BlocksTimelineTable.vue (97%) rename {components => app/components}/data/LatestPFBTable.vue (94%) rename {components => app/components}/data/RecentNamespacesTable.vue (95%) rename {components => app/components}/modals/APIModal.vue (98%) rename {components => app/components}/modals/AwaitingModal.vue (96%) rename {components => app/components}/modals/BlobModal.vue (97%) rename {components => app/components}/modals/ChangeBlobModal.vue (86%) rename {components => app/components}/modals/ChartModal.vue (78%) rename {components => app/components}/modals/CommitmentModal.vue (95%) rename {components => app/components}/modals/ConfirmationModal.vue (88%) rename {components => app/components}/modals/ConnectModal.vue (91%) rename {components => app/components}/modals/EditBookmarkAliasModal.vue (90%) rename {components => app/components}/modals/HexSettingsModal.vue (86%) rename {components => app/components}/modals/HyperlaneMailboxModal.vue (95%) rename {components => app/components}/modals/HyperlaneTokenModal.vue (96%) rename {components => app/components}/modals/HyperlaneTransferModal.vue (95%) rename {components => app/components}/modals/IBCClientModal.vue (89%) rename {components => app/components}/modals/IBCTransferModal.vue (95%) rename {components => app/components}/modals/ImportBookmarksModal.vue (94%) rename {components => app/components}/modals/LightNodeModal.vue (97%) rename {components => app/components}/modals/LightNodeSettingsModal.vue (93%) rename {components => app/components}/modals/LoginModal.vue (83%) rename {components => app/components}/modals/ModalsManager.vue (90%) rename {components => app/components}/modals/ODSModal.vue (96%) rename {components => app/components}/modals/PayForBlobModal.vue (94%) rename {components => app/components}/modals/QRCodeModal.vue (93%) rename {components => app/components}/modals/RawDataModal.vue (91%) rename {components => app/components}/modals/RollupRankModal.vue (94%) rename {components => app/components}/modals/SendModal.vue (95%) rename {components => app/components}/modals/SettingsModal.vue (80%) rename {components => app/components}/modals/SignupModal.vue (77%) rename {components => app/components}/modals/StakingModal.vue (95%) rename {components => app/components}/modals/VestingDetailsModal.vue (94%) rename {components => app/components}/modules/address/AddressCharts.vue (90%) rename {components => app/components}/modules/address/AddressOverview.vue (97%) rename {components => app/components}/modules/address/VotesTable.vue (93%) rename {components => app/components}/modules/address/tables/DelegationsTable.vue (88%) rename {components => app/components}/modules/address/tables/GrantersTable.vue (93%) rename {components => app/components}/modules/address/tables/GrantsTable.vue (93%) rename {components => app/components}/modules/address/tables/RedelegationsTable.vue (91%) rename {components => app/components}/modules/address/tables/TransactionsTable.vue (95%) rename {components => app/components}/modules/address/tables/UndelegationsTable.vue (91%) rename {components => app/components}/modules/address/tables/VestingsTable.vue (95%) rename {components => app/components}/modules/blob/DataInspector.vue (98%) rename {components => app/components}/modules/blob/HexViewer.vue (100%) rename {components => app/components}/modules/blob/Preview.vue (100%) rename {components => app/components}/modules/block/BlobsTable.vue (94%) rename {components => app/components}/modules/block/BlockOverview.vue (96%) rename {components => app/components}/modules/block/UpcomingBlockCard.vue (94%) rename {components => app/components}/modules/bookmarks/BookmarkItem.vue (93%) rename {components => app/components}/modules/gas/GasEfficiencyChart.vue (99%) rename {components => app/components}/modules/gas/GasFeeCalculator.vue (97%) rename {components => app/components}/modules/gas/GasPriceChart.vue (98%) rename {components => app/components}/modules/gas/GasPriceHeatmap.vue (97%) rename {components => app/components}/modules/hyperlane/LatestTransfersTable.vue (95%) rename {components => app/components}/modules/hyperlane/MailboxesTable.vue (95%) rename {components => app/components}/modules/hyperlane/TokensTable.vue (94%) rename {components => app/components}/modules/hyperlane/TransfersTable.vue (95%) rename {components => app/components}/modules/ibc/ChainClientsTable.vue (94%) rename {components => app/components}/modules/ibc/ChainOverview.vue (98%) rename {components => app/components}/modules/ibc/ChainTransfersTable.vue (94%) rename {components => app/components}/modules/ibc/ChainsTable.vue (95%) rename {components => app/components}/modules/ibc/ConnectionCard.vue (97%) rename {components => app/components}/modules/ibc/GraphSidebar.vue (94%) rename {components => app/components}/modules/ibc/IBCGraph.vue (98%) rename {components => app/components}/modules/ibc/LargestChainsTable.vue (96%) rename {components => app/components}/modules/ibc/LatestTransfersTable.vue (94%) rename {components => app/components}/modules/ibc/NotableStats.vue (83%) rename {components => app/components}/modules/ibc/TransfersTable.vue (93%) rename {components => app/components}/modules/namespace/NamespaceCharts.vue (92%) rename {components => app/components}/modules/namespace/NamespaceOverview.vue (96%) rename {components => app/components}/modules/namespace/tables/BlobsTable.vue (95%) rename {components => app/components}/modules/namespace/tables/MessagesTable.vue (95%) rename {components => app/components}/modules/navigation/NavLink.vue (100%) rename {components => app/components}/modules/navigation/Search.vue (97%) rename {components => app/components}/modules/proposal/ProposalChanges.vue (97%) rename {components => app/components}/modules/proposal/ProposalDescription.vue (88%) rename {components => app/components}/modules/proposal/ProposalOverview.vue (92%) rename {components => app/components}/modules/proposal/ProposalTimeline.vue (99%) rename {components => app/components}/modules/proposal/VotesAllocation.vue (96%) rename {components => app/components}/modules/proposal/VotesTable.vue (94%) rename {components => app/components}/modules/proposal/VotingPower.vue (83%) rename {components => app/components}/modules/rollup/RollupCharts.vue (95%) rename {components => app/components}/modules/rollup/RollupOverview.vue (96%) rename {components => app/components}/modules/rollup/tables/BlobsTable.vue (94%) rename {components => app/components}/modules/rollup/tables/NamespacesTable.vue (96%) rename {components => app/components}/modules/stats/BarChart.vue (99%) create mode 100644 app/components/modules/stats/BarplotChartCard.vue rename {components => app/components}/modules/stats/BarplotStakedChart.vue (99%) rename {components => app/components}/modules/stats/BarplotStakedRollupChart.vue (99%) rename {components => app/components}/modules/stats/BlocksFeed.vue (92%) rename {components => app/components}/modules/stats/ChartCardPreview.vue (95%) create mode 100644 app/components/modules/stats/DiffChip.vue rename {components => app/components}/modules/stats/GeoMap.vue (86%) rename {components => app/components}/modules/stats/HighlightCard.vue (57%) rename {components => app/components}/modules/stats/InsightCard.vue (98%) rename {components => app/components}/modules/stats/LineChart.vue (99%) create mode 100644 app/components/modules/stats/ParallelCoordinatesChart.vue rename {components => app/components}/modules/stats/PieChartCard.vue (99%) rename {components => app/components}/modules/stats/RadarChart.vue (99%) rename {components => app/components}/modules/stats/RollupsActivity.vue (93%) create mode 100644 app/components/modules/stats/RollupsActivityGraph.vue create mode 100644 app/components/modules/stats/RollupsActivityTable.vue rename {components => app/components}/modules/stats/RollupsBubbleChart.vue (98%) rename {components => app/components}/modules/stats/SquareSizeCard.vue (98%) rename {components => app/components}/modules/stats/SquareSizeChart.vue (98%) rename {components => app/components}/modules/stats/TimelineSlider.vue (100%) rename {components => app/components}/modules/stats/tabs/BlocksTab.vue (87%) rename {components => app/components}/modules/stats/tabs/GeneralTab.vue (87%) rename {components => app/components}/modules/stats/tabs/NodesTab.vue (80%) rename {components => app/components}/modules/stats/tabs/RollupsTab.vue (93%) rename {components => app/components}/modules/tx/MessagesTable.vue (93%) rename {components => app/components}/modules/tx/TxOverview.vue (94%) rename {components => app/components}/modules/upgrade/SignalsTable.vue (89%) rename {components => app/components}/modules/upgrade/UpgradeOverview.vue (85%) rename {components => app/components}/modules/validator/ValidatorCharts.vue (92%) create mode 100644 app/components/modules/validator/ValidatorMetrics.vue rename {components => app/components}/modules/validator/ValidatorOverview.vue (97%) create mode 100644 app/components/modules/validator/ValidatorUptime.vue rename {components => app/components}/modules/validator/tables/BlocksTable.vue (81%) rename {components => app/components}/modules/validator/tables/DelegatorsTable.vue (83%) rename {components => app/components}/modules/validator/tables/JailsTable.vue (96%) rename {components => app/components}/modules/validator/tables/MessagesTable.vue (53%) rename {components => app/components}/modules/validator/tables/SignalsTable.vue (86%) rename {components => app/components}/modules/validator/tables/VotesTable.vue (95%) rename {components => app/components}/shared/AdvBanner.vue (96%) rename {components => app/components}/shared/ChartOnEntityPage.vue (94%) rename {components => app/components}/shared/MessageTypeBadge.vue (87%) rename {components => app/components}/shared/TablePlaceholderView.vue (100%) rename {components => app/components}/shared/tables/Events.vue (98%) rename {components => app/components}/shared/tables/UpcomingUpdate.vue (100%) rename {components => app/components}/ui/Badge.vue (100%) rename {components => app/components}/ui/Button.vue (100%) rename {components => app/components}/ui/Checkbox.vue (100%) rename {components => app/components}/ui/Dropdown/DropdownContainer.vue (96%) rename {components => app/components}/ui/Dropdown/DropdownDivider.vue (100%) rename {components => app/components}/ui/Dropdown/DropdownItem.vue (100%) rename {components => app/components}/ui/Dropdown/DropdownTitle.vue (100%) rename {components => app/components}/ui/Dropdown/DropdownTrigger.vue (100%) rename {components => app/components}/ui/Dropdown/index.js (100%) rename {components => app/components}/ui/Input.vue (100%) rename {components => app/components}/ui/Kbd.vue (100%) rename {components => app/components}/ui/Modal.vue (96%) rename {components => app/components}/ui/Popover.vue (93%) rename {components => app/components}/ui/Radio.vue (100%) rename {components => app/components}/ui/Spinner.vue (100%) rename {components => app/components}/ui/Toggle.vue (100%) rename {components => app/components}/ui/Tooltip.vue (100%) rename {components => app/components}/widgets/BlobsWidget.vue (96%) rename {components => app/components}/widgets/BlockWidget.vue (96%) rename {components => app/components}/widgets/GasWidget.vue (97%) rename {components => app/components}/widgets/GlobalUpdatesWidget.vue (85%) rename {components => app/components}/widgets/StakingWidget.vue (97%) rename {components => app/components}/widgets/TransactionsWidget.vue (95%) rename {components => app/components}/widgets/Widgets.vue (100%) rename {composables => app/composables}/filters.js (100%) rename {composables => app/composables}/outside.js (100%) rename error.vue => app/error.vue (90%) rename {layouts => app/layouts}/default.vue (95%) rename {layouts => app/layouts}/widgets.vue (98%) rename {middleware => app/middleware}/rollup-redirect.global.ts (100%) rename {pages => app/pages}/address/[hash].vue (87%) rename {pages => app/pages}/addresses.vue (96%) rename {pages => app/pages}/auth/callback.vue (82%) rename {pages => app/pages}/blob-fest.vue (100%) rename {pages => app/pages}/blob.vue (96%) rename {pages => app/pages}/blobstream.vue (97%) rename {pages => app/pages}/block/[height].vue (88%) rename {pages => app/pages}/blocks.vue (97%) rename {pages => app/pages}/bookmarks.vue (93%) rename {pages => app/pages}/brussels-ctf.vue (100%) rename {pages => app/pages}/calculators/savings.vue (99%) rename {pages => app/pages}/constants.vue (97%) rename {pages => app/pages}/faucet.vue (96%) rename {pages => app/pages}/gas.vue (92%) rename {pages => app/pages}/hyperlane/index.vue (90%) rename {pages => app/pages}/hyperlane/transfers.vue (93%) rename {pages => app/pages}/ibc/chain/[id].vue (91%) rename {pages => app/pages}/ibc/chains.vue (93%) rename {pages => app/pages}/ibc/graph.vue (100%) rename {pages => app/pages}/ibc/index.vue (86%) rename {pages => app/pages}/ibc/transfer/[id].vue (100%) rename {pages => app/pages}/ibc/transfers.vue (93%) rename {pages => app/pages}/index.vue (86%) rename {pages => app/pages}/namespace/[id].vue (87%) rename {pages => app/pages}/namespaces/index.vue (97%) rename {pages => app/pages}/namespaces/treemap/index.vue (94%) rename {pages => app/pages}/network/[slug].vue (88%) rename {pages => app/pages}/network/rank/[slug].vue (96%) rename {pages => app/pages}/networks/index.vue (94%) create mode 100644 app/pages/privacy-policy.vue rename {pages => app/pages}/proposal/[id].vue (84%) rename {pages => app/pages}/proposals.vue (96%) rename {pages => app/pages}/stats/[metric].vue (86%) rename {pages => app/pages}/stats/index.vue (92%) create mode 100644 app/pages/terms-of-use.vue rename {pages => app/pages}/tx/[hash].vue (90%) rename {pages => app/pages}/txs.vue (97%) rename {pages => app/pages}/upgrade/[version].vue (72%) rename {pages => app/pages}/upgrades.vue (89%) rename {pages => app/pages}/validator/[id].vue (86%) rename {pages => app/pages}/validators.vue (95%) rename {pages => app/pages}/widgets/networks.vue (97%) rename {plugins => app/plugins}/force.client.js (100%) rename {plugins => app/plugins}/globalFunctions.js (93%) rename {plugins => app/plugins}/goog.client.js (69%) rename {plugins => app/plugins}/lumina.client.js (52%) rename {services => app/services}/amp.js (100%) rename {services => app/services}/api/address.js (100%) rename {services => app/services}/api/blobstream.js (100%) rename {services => app/services}/api/block.js (100%) rename {services => app/services}/api/faucet.js (100%) rename {services => app/services}/api/gas.js (100%) rename {services => app/services}/api/hyperlane.js (100%) rename {services => app/services}/api/ibc.js (100%) rename {services => app/services}/api/main.js (100%) rename {services => app/services}/api/namespace.js (100%) rename {services => app/services}/api/proposal.js (100%) rename {services => app/services}/api/rollup.js (100%) rename {services => app/services}/api/search.js (100%) rename {services => app/services}/api/socket.js (96%) rename {services => app/services}/api/stats.js (100%) rename {services => app/services}/api/tx.js (100%) rename {services => app/services}/api/validator.js (100%) rename {services => app/services}/auth.js (100%) rename {services => app/services}/chains.js (100%) rename {services => app/services}/config.js (98%) rename {services => app/services}/constants/advertising.js (100%) rename {services => app/services}/constants/enums.js (100%) rename {services => app/services}/constants/ibc.js (100%) rename {services => app/services}/constants/legal.js (100%) rename {services => app/services}/constants/mapping.js (100%) rename {services => app/services}/constants/node.js (100%) rename {services => app/services}/constants/rollups.js (100%) rename {services => app/services}/constants/settings.js (100%) rename {services => app/services}/constants/stats.js (100%) rename {services => app/services}/constants/updates.js (100%) rename {services => app/services}/editor/creator.js (100%) rename {services => app/services}/editor/theme.js (94%) rename {services => app/services}/lumina-node-wasm/lumina_node_wasm.d.ts (100%) rename {services => app/services}/lumina-node-wasm/lumina_node_wasm.js (100%) rename {services => app/services}/lumina-node-wasm/lumina_node_wasm_bg.js (100%) rename {services => app/services}/lumina-node-wasm/lumina_node_wasm_bg.wasm (100%) rename {services => app/services}/lumina-node-wasm/lumina_node_wasm_bg.wasm.d.ts (100%) rename {services => app/services}/notifications.js (100%) rename {services => app/services}/proto/gen/any.ts (100%) rename {services => app/services}/proto/gen/bank.ts (100%) rename {services => app/services}/proto/gen/coin.ts (100%) rename {services => app/services}/proto/gen/keys.ts (100%) rename {services => app/services}/proto/gen/msg_send.ts (100%) rename {services => app/services}/proto/gen/multisig.ts (100%) rename {services => app/services}/proto/gen/signing.ts (100%) rename {services => app/services}/proto/gen/staking.ts (100%) rename {services => app/services}/proto/gen/tx.ts (100%) rename {services => app/services}/utils/amounts.js (100%) rename {services => app/services}/utils/blob.js (100%) rename {services => app/services}/utils/blobtx.js (100%) rename {services => app/services}/utils/d3.js (100%) rename {services => app/services}/utils/encode.js (99%) rename {services => app/services}/utils/entityCharts.js (100%) rename {services => app/services}/utils/export.js (100%) rename {services => app/services}/utils/general.js (100%) create mode 100644 app/services/utils/index.js rename {services => app/services}/utils/msgpayforblobs.js (100%) rename {services => app/services}/utils/states.js (100%) rename {services => app/services}/utils/strings.js (100%) rename {services => app/services}/utils/tree.js (96%) rename {services => app/services}/version.js (100%) rename {services => app/services}/wallet.js (98%) rename {store => app/store}/app.store.js (93%) rename {store => app/store}/auth.store.js (100%) rename {store => app/store}/bookmarks.store.js (100%) rename {store => app/store}/cache.store.js (100%) rename {store => app/store}/enums.store.js (100%) rename {store => app/store}/legal.store.js (100%) rename {store => app/store}/modals.store.js (100%) rename {store => app/store}/node.store.js (100%) rename {store => app/store}/notifications.store.js (91%) rename {store => app/store}/settings.store.js (100%) delete mode 100755 assets/fonts/DS-DIGI.TTF create mode 100644 bun.lock delete mode 100644 components/modules/stats/BarplotChartCard.vue delete mode 100644 components/modules/stats/DiffChip.vue delete mode 100644 components/modules/stats/ParallelCoordinatesChart.vue delete mode 100644 components/modules/stats/RollupsActivityGraph.vue delete mode 100644 components/modules/stats/RollupsActivityTable.vue delete mode 100644 components/modules/validator/ValidatorMetrics.vue delete mode 100644 components/modules/validator/ValidatorUptime.vue delete mode 100644 pages/privacy-policy.vue delete mode 100644 pages/terms-of-use.vue delete mode 100644 pnpm-lock.yaml delete mode 100644 services/utils/index.js diff --git a/README.md b/README.md index 2abf10f1..b90d8c2a 100644 --- a/README.md +++ b/README.md @@ -8,8 +8,8 @@ Clone the repository and run on the root folder: ``` -pnpm i -pnpm dev +bun i +bun dev ``` ### Node.js Server diff --git a/app.vue b/app/app.vue similarity index 71% rename from app.vue rename to app/app.vue index 2c9397b6..08cae74d 100644 --- a/app.vue +++ b/app/app.vue @@ -1,28 +1,28 @@ diff --git a/components/AddressBadge.vue b/app/components/AddressBadge.vue similarity index 100% rename from components/AddressBadge.vue rename to app/components/AddressBadge.vue diff --git a/components/AmountInCurrency.vue b/app/components/AmountInCurrency.vue similarity index 95% rename from components/AmountInCurrency.vue rename to app/components/AmountInCurrency.vue index 88243249..c9de7bd9 100644 --- a/components/AmountInCurrency.vue +++ b/app/components/AmountInCurrency.vue @@ -1,12 +1,12 @@ + + diff --git a/components/OgImage/BlockImage.vue b/app/components/OgImage/BlockImage.takumi.vue similarity index 77% rename from components/OgImage/BlockImage.vue rename to app/components/OgImage/BlockImage.takumi.vue index 110ec92c..db6ad42e 100644 --- a/components/OgImage/BlockImage.vue +++ b/app/components/OgImage/BlockImage.takumi.vue @@ -3,7 +3,7 @@ import { DateTime } from "luxon" /** Services */ -import { comma, formatBytes } from "@/services/utils" +import { comma, formatBytes } from "~/services/utils/index.js" defineOptions({ inheritAttrs: false, @@ -27,10 +27,10 @@ const messages = computed(() => [...new Set(props.block.message_types)]) + + diff --git a/components/OgImage/NamespaceImage.vue b/app/components/OgImage/NamespaceImage.takumi.vue similarity index 96% rename from components/OgImage/NamespaceImage.vue rename to app/components/OgImage/NamespaceImage.takumi.vue index c06184fe..588cc987 100644 --- a/components/OgImage/NamespaceImage.vue +++ b/app/components/OgImage/NamespaceImage.takumi.vue @@ -1,6 +1,6 @@ + + diff --git a/components/OgImage/RollupImage.vue b/app/components/OgImage/RollupImage.takumi.vue similarity index 66% rename from components/OgImage/RollupImage.vue rename to app/components/OgImage/RollupImage.takumi.vue index bcb4ec3c..e18b67b2 100644 --- a/components/OgImage/RollupImage.vue +++ b/app/components/OgImage/RollupImage.takumi.vue @@ -3,7 +3,7 @@ import { DateTime } from "luxon" /** Services */ -import { comma, formatBytes } from "@/services/utils" +import { comma, formatBytes } from "~/services/utils/index.js" defineOptions({ inheritAttrs: false, @@ -25,10 +25,10 @@ const bgStyles = computed(() => { + + diff --git a/components/OgImage/TxImage.vue b/app/components/OgImage/TxImage.takumi.vue similarity index 84% rename from components/OgImage/TxImage.vue rename to app/components/OgImage/TxImage.takumi.vue index 28e694fc..8445e8f6 100644 --- a/components/OgImage/TxImage.vue +++ b/app/components/OgImage/TxImage.takumi.vue @@ -3,7 +3,7 @@ import { DateTime } from "luxon" /** Services */ -import { tia, comma } from "@/services/utils" +import { tia, comma } from "~/services/utils/index.js" defineOptions({ inheritAttrs: false, @@ -27,10 +27,10 @@ const messages = computed(() => [...new Set(props.tx.message_types)]) + + diff --git a/components/OgImage/UpgradeImage.vue b/app/components/OgImage/UpgradeImage.takumi.vue similarity index 73% rename from components/OgImage/UpgradeImage.vue rename to app/components/OgImage/UpgradeImage.takumi.vue index 6c7ca66f..f8682c2a 100644 --- a/components/OgImage/UpgradeImage.vue +++ b/app/components/OgImage/UpgradeImage.takumi.vue @@ -1,6 +1,6 @@ + + diff --git a/components/OgImage/ValidatorImage.vue b/app/components/OgImage/ValidatorImage.takumi.vue similarity index 62% rename from components/OgImage/ValidatorImage.vue rename to app/components/OgImage/ValidatorImage.takumi.vue index f2abe1d1..85a873f5 100644 --- a/components/OgImage/ValidatorImage.vue +++ b/app/components/OgImage/ValidatorImage.takumi.vue @@ -1,6 +1,6 @@ + + diff --git a/components/Outline.vue b/app/components/Outline.vue similarity index 100% rename from components/Outline.vue rename to app/components/Outline.vue diff --git a/components/Skeleton.vue b/app/components/Skeleton.vue similarity index 100% rename from components/Skeleton.vue rename to app/components/Skeleton.vue diff --git a/components/Text.vue b/app/components/Text.vue similarity index 100% rename from components/Text.vue rename to app/components/Text.vue diff --git a/components/TheFooter.vue b/app/components/TheFooter.vue similarity index 93% rename from components/TheFooter.vue rename to app/components/TheFooter.vue index b9d88152..5f5a4781 100644 --- a/components/TheFooter.vue +++ b/app/components/TheFooter.vue @@ -1,9 +1,9 @@ @@ -54,16 +54,13 @@ const modalsStore = useModalsStore() - + - + - + diff --git a/components/modals/ODSModal.vue b/app/components/modals/ODSModal.vue similarity index 96% rename from components/modals/ODSModal.vue rename to app/components/modals/ODSModal.vue index cf47d0b1..759685d9 100644 --- a/components/modals/ODSModal.vue +++ b/app/components/modals/ODSModal.vue @@ -1,17 +1,17 @@ - - 150 characters or fewer. Letters, digits and @/./+/-/_ only. - + 150 characters or fewer. Letters, digits and @/./+/-/_ only. @@ -128,14 +122,11 @@ const handleLogin = () => { - - Enter a valid email address. - + Enter a valid email address. - + - - Your password can’t be too similar to your other personal information.
- Your password must contain at least 8 characters.
- Your password can’t be a commonly used password.
@@ -152,28 +142,27 @@ const handleLogin = () => {
- + - - Enter the same password as before, for verification. - + Enter the same password as before, for verification. Already have an account? - - Login - + Login @@ -188,7 +177,7 @@ const handleLogin = () => { padding: 6px 8px; - transition: all .2s ease; + transition: all 0.2s ease; &.selected { background: var(--op-10); diff --git a/components/modals/StakingModal.vue b/app/components/modals/StakingModal.vue similarity index 95% rename from components/modals/StakingModal.vue rename to app/components/modals/StakingModal.vue index d09fae42..21d58835 100644 --- a/components/modals/StakingModal.vue +++ b/app/components/modals/StakingModal.vue @@ -3,25 +3,25 @@ import { Dec, DecUtils } from "@keplr-wallet/unit" /** UI */ -import Modal from "@/components/ui/Modal.vue" -import Input from "@/components/ui/Input.vue" -import Tooltip from "@/components/ui/Tooltip.vue" -import Button from "@/components/ui/Button.vue" +import Modal from "~/components/ui/Modal.vue" +import Input from "~/components/ui/Input.vue" +import Tooltip from "~/components/ui/Tooltip.vue" +import Button from "~/components/ui/Button.vue" /** API */ -import { search } from "@/services/api/search" +import { search } from "~/services/api/search.js" /** Services */ -import amp from "@/services/amp" -import { normalizeAmount, purgeNumber, comma } from "@/services/utils/amounts" -import { SIMULATE_ADDRESS_FROM, SIMULATE_VALIDATOR, simulateMsgs, sendMsgs } from "@/services/wallet" -import { MsgDelegate } from "@/services/proto/gen/staking" +import amp from "~/services/amp.js" +import { normalizeAmount, purgeNumber, comma } from "~/services/utils/amounts.js" +import { SIMULATE_ADDRESS_FROM, SIMULATE_VALIDATOR, simulateMsgs, sendMsgs } from "~/services/wallet.js" +import { MsgDelegate } from "~/services/proto/gen/staking.ts" /** Store */ -import { useAppStore } from "@/store/app.store" -import { useModalsStore } from "@/store/modals.store" -import { useCacheStore } from "@/store/cache.store" -import { useNotificationsStore } from "@/store/notifications.store" +import { useAppStore } from "~/store/app.store.js" +import { useModalsStore } from "~/store/modals.store.js" +import { useCacheStore } from "~/store/cache.store.js" +import { useNotificationsStore } from "~/store/notifications.store.js" const appStore = useAppStore() const modalsStore = useModalsStore() const cacheStore = useCacheStore() diff --git a/components/modals/VestingDetailsModal.vue b/app/components/modals/VestingDetailsModal.vue similarity index 94% rename from components/modals/VestingDetailsModal.vue rename to app/components/modals/VestingDetailsModal.vue index 8f429d0a..1cde6927 100644 --- a/components/modals/VestingDetailsModal.vue +++ b/app/components/modals/VestingDetailsModal.vue @@ -3,18 +3,18 @@ import { DateTime } from "luxon" /** API */ -import { fetchVestingPeriods } from "@/services/api/address" +import { fetchVestingPeriods } from "~/services/api/address.js" /** UI */ -import Button from "@/components/ui/Button.vue" -import Modal from "@/components/ui/Modal.vue" -import Tooltip from "@/components/ui/Tooltip.vue" +import Button from "~/components/ui/Button.vue" +import Modal from "~/components/ui/Modal.vue" +import Tooltip from "~/components/ui/Tooltip.vue" /** Services */ -import { capitilize } from "@/services/utils" +import { capitilize } from "~/services/utils/index.js" /** Store */ -import { useCacheStore } from "@/store/cache.store" +import { useCacheStore } from "~/store/cache.store.js" const cacheStore = useCacheStore() const emit = defineEmits(["onClose"]) diff --git a/components/modules/address/AddressCharts.vue b/app/components/modules/address/AddressCharts.vue similarity index 90% rename from components/modules/address/AddressCharts.vue rename to app/components/modules/address/AddressCharts.vue index 8b0341c7..081576b1 100644 --- a/components/modules/address/AddressCharts.vue +++ b/app/components/modules/address/AddressCharts.vue @@ -3,24 +3,24 @@ import { DateTime } from "luxon" /** UI */ -import Button from "@/components/ui/Button.vue" -import { Dropdown, DropdownItem } from "@/components/ui/Dropdown" -import Popover from "@/components/ui/Popover.vue" -import Toggle from "@/components/ui/Toggle.vue" +import Button from "~/components/ui/Button.vue" +import { Dropdown, DropdownItem } from "~/components/ui/Dropdown/index.js" +import Popover from "~/components/ui/Popover.vue" +import Toggle from "~/components/ui/Toggle.vue" import ChartOnEntityPage from "~/components/shared/ChartOnEntityPage.vue" -import Icon from "@/components/Icon.vue" -import Text from "@/components/Text.vue" -import Flex from "@/components/Flex.vue" +import Icon from "~/components/Icon.vue" +import Text from "~/components/Text.vue" +import Flex from "~/components/Flex.vue" /** Services */ -import { abbreviate, tia } from "@/services/utils" -import { createDataMap, generateSeriesData, PERIODS as periods } from "@/services/utils/entityCharts" +import { abbreviate, tia } from "~/services/utils/index.js" +import { createDataMap, generateSeriesData, PERIODS as periods } from "~/services/utils/entityCharts.js" /** API */ -import { fetchAddressSeries } from "@/services/api/stats" +import { fetchAddressSeries } from "~/services/api/stats.js" /** Store */ -import { useSettingsStore } from "@/store/settings.store" +import { useSettingsStore } from "~/store/settings.store.js" const settingsStore = useSettingsStore() const props = defineProps({ @@ -75,7 +75,7 @@ const seriesConfig = [ series: feeSeries, title: "Fee Spent", tooltipLabel: "Spent", - yAxisFormatter: (val) => `${(tia(val, 0) > 1 ? tia(val, 0) : tia(val, 2))} TIA`, + yAxisFormatter: (val) => `${tia(val, 0) > 1 ? tia(val, 0) : tia(val, 2)} TIA`, tooltipValueFormatter: (val) => `${tia(val)} TIA`, }, ] @@ -362,7 +362,10 @@ onMounted(async () => { background: var(--card-background); border-radius: 6px; - box-shadow: inset 0 0 0 1px var(--op-5), 0 14px 34px rgba(0, 0, 0, 15%), 0 4px 14px rgba(0, 0, 0, 5%); + box-shadow: + inset 0 0 0 1px var(--op-5), + 0 14px 34px rgba(0, 0, 0, 15%), + 0 4px 14px rgba(0, 0, 0, 5%); padding: 8px; diff --git a/components/modules/address/AddressOverview.vue b/app/components/modules/address/AddressOverview.vue similarity index 97% rename from components/modules/address/AddressOverview.vue rename to app/components/modules/address/AddressOverview.vue index bcfb97a0..5b9dc272 100644 --- a/components/modules/address/AddressOverview.vue +++ b/app/components/modules/address/AddressOverview.vue @@ -1,18 +1,18 @@ diff --git a/components/modules/ibc/ChainsTable.vue b/app/components/modules/ibc/ChainsTable.vue similarity index 95% rename from components/modules/ibc/ChainsTable.vue rename to app/components/modules/ibc/ChainsTable.vue index caeb645b..b4d18c3f 100644 --- a/components/modules/ibc/ChainsTable.vue +++ b/app/components/modules/ibc/ChainsTable.vue @@ -1,10 +1,10 @@ @@ -67,7 +67,14 @@ const getChainName = (target) => { - + @@ -98,7 +105,9 @@ const getChainName = (target) => { {{ busiestChannel ? busiestChannel.channel_id : "" }} - {{ busiestChannel ? IbcChainName[busiestChannel.chain_id] ?? "Unknown" : "Unknown" }} + {{ + busiestChannel ? (IbcChainName[busiestChannel.chain_id] ?? "Unknown") : "Unknown" + }} diff --git a/components/modules/ibc/TransfersTable.vue b/app/components/modules/ibc/TransfersTable.vue similarity index 93% rename from components/modules/ibc/TransfersTable.vue rename to app/components/modules/ibc/TransfersTable.vue index f94e2bfd..77f9b2fa 100644 --- a/components/modules/ibc/TransfersTable.vue +++ b/app/components/modules/ibc/TransfersTable.vue @@ -3,15 +3,15 @@ import { DateTime } from "luxon" /** Services */ -import { comma } from "@/services/utils" -import { IbcChainName, IbcChainLogo } from "@/services/constants/ibc" +import { comma } from "~/services/utils/index.js" +import { IbcChainName, IbcChainLogo } from "~/services/constants/ibc.js" /** Shared Components */ -import TablePlaceholderView from "@/components/shared/TablePlaceholderView.vue" +import TablePlaceholderView from "~/components/shared/TablePlaceholderView.vue" /** Store */ -import { useModalsStore } from "@/store/modals.store" -import { useCacheStore } from "@/store/cache.store" +import { useModalsStore } from "~/store/modals.store.js" +import { useCacheStore } from "~/store/cache.store.js" const modalsStore = useModalsStore() const cacheStore = useCacheStore() @@ -34,7 +34,7 @@ const handleOpenTransferModal = (transfer) => { const getChainLogo = (transfer, target) => { return transfer[target].hash.startsWith("celestia") ? IbcChainLogo["_celestia"] - : IbcChainLogo[transfer.chain_id] ?? IbcChainLogo["_unknown"] + : (IbcChainLogo[transfer.chain_id] ?? IbcChainLogo["_unknown"]) } diff --git a/components/modules/namespace/NamespaceCharts.vue b/app/components/modules/namespace/NamespaceCharts.vue similarity index 92% rename from components/modules/namespace/NamespaceCharts.vue rename to app/components/modules/namespace/NamespaceCharts.vue index 786722b4..55ff8275 100644 --- a/components/modules/namespace/NamespaceCharts.vue +++ b/app/components/modules/namespace/NamespaceCharts.vue @@ -3,23 +3,23 @@ import { DateTime } from "luxon" /** UI */ -import Button from "@/components/ui/Button.vue" -import { Dropdown, DropdownItem } from "@/components/ui/Dropdown" -import Popover from "@/components/ui/Popover.vue" -import Toggle from "@/components/ui/Toggle.vue" +import Button from "~/components/ui/Button.vue" +import { Dropdown, DropdownItem } from "~/components/ui/Dropdown/index.js" +import Popover from "~/components/ui/Popover.vue" +import Toggle from "~/components/ui/Toggle.vue" /** Components */ import ChartOnEntityPage from "~/components/shared/ChartOnEntityPage.vue" /** Services */ -import { abbreviate, formatBytes } from "@/services/utils" -import { createDataMap, generateSeriesData, PERIODS as periods } from "@/services/utils/entityCharts" +import { abbreviate, formatBytes } from "~/services/utils/index.js" +import { createDataMap, generateSeriesData, PERIODS as periods } from "~/services/utils/entityCharts.js" /** API */ -import { fetchNamespaceSeries } from "@/services/api/stats" +import { fetchNamespaceSeries } from "~/services/api/stats.js" /** Store */ -import { useSettingsStore } from "@/store/settings.store" +import { useSettingsStore } from "~/store/settings.store.js" const settingsStore = useSettingsStore() const props = defineProps({ @@ -343,7 +343,10 @@ onMounted(async () => { background: var(--card-background); border-radius: 6px; - box-shadow: inset 0 0 0 1px var(--op-5), 0 14px 34px rgba(0, 0, 0, 15%), 0 4px 14px rgba(0, 0, 0, 5%); + box-shadow: + inset 0 0 0 1px var(--op-5), + 0 14px 34px rgba(0, 0, 0, 15%), + 0 4px 14px rgba(0, 0, 0, 5%); padding: 8px; diff --git a/components/modules/namespace/NamespaceOverview.vue b/app/components/modules/namespace/NamespaceOverview.vue similarity index 96% rename from components/modules/namespace/NamespaceOverview.vue rename to app/components/modules/namespace/NamespaceOverview.vue index 740b3ff0..c5b269b9 100644 --- a/components/modules/namespace/NamespaceOverview.vue +++ b/app/components/modules/namespace/NamespaceOverview.vue @@ -1,23 +1,23 @@ diff --git a/components/modules/proposal/VotingPower.vue b/app/components/modules/proposal/VotingPower.vue similarity index 83% rename from components/modules/proposal/VotingPower.vue rename to app/components/modules/proposal/VotingPower.vue index c1bb06cc..f6dbfd90 100644 --- a/components/modules/proposal/VotingPower.vue +++ b/app/components/modules/proposal/VotingPower.vue @@ -1,13 +1,13 @@ + + + + diff --git a/components/modules/stats/BarplotStakedChart.vue b/app/components/modules/stats/BarplotStakedChart.vue similarity index 99% rename from components/modules/stats/BarplotStakedChart.vue rename to app/components/modules/stats/BarplotStakedChart.vue index 6b348ce0..4f585d10 100644 --- a/components/modules/stats/BarplotStakedChart.vue +++ b/app/components/modules/stats/BarplotStakedChart.vue @@ -4,7 +4,7 @@ import * as d3 from "d3" import { DateTime } from "luxon" /** Services */ -import { abbreviate, comma, formatBytes, isMobile, sortArrayOfObjects, tia, truncateDecimalPart } from "@/services/utils" +import { abbreviate, comma, formatBytes, isMobile, sortArrayOfObjects, tia, truncateDecimalPart } from "~/services/utils/index.js" const props = defineProps({ series: { diff --git a/components/modules/stats/BarplotStakedRollupChart.vue b/app/components/modules/stats/BarplotStakedRollupChart.vue similarity index 99% rename from components/modules/stats/BarplotStakedRollupChart.vue rename to app/components/modules/stats/BarplotStakedRollupChart.vue index 3229da40..4db2d3b8 100644 --- a/components/modules/stats/BarplotStakedRollupChart.vue +++ b/app/components/modules/stats/BarplotStakedRollupChart.vue @@ -4,7 +4,7 @@ import * as d3 from "d3" import { DateTime } from "luxon" /** Services */ -import { abbreviate, comma, formatBytes, isMobile, sortArrayOfObjects, tia, truncateDecimalPart } from "@/services/utils" +import { abbreviate, comma, formatBytes, isMobile, sortArrayOfObjects, tia, truncateDecimalPart } from "~/services/utils/index.js" const props = defineProps({ series: { diff --git a/components/modules/stats/BlocksFeed.vue b/app/components/modules/stats/BlocksFeed.vue similarity index 92% rename from components/modules/stats/BlocksFeed.vue rename to app/components/modules/stats/BlocksFeed.vue index 2d62e9fd..9939048c 100644 --- a/components/modules/stats/BlocksFeed.vue +++ b/app/components/modules/stats/BlocksFeed.vue @@ -3,16 +3,16 @@ import { DateTime } from "luxon" /** UI */ -import Tooltip from "@/components/ui/Tooltip.vue" +import Tooltip from "~/components/ui/Tooltip.vue" /** Services */ -import { comma, formatBytes } from "@/services/utils" +import { comma, formatBytes } from "~/services/utils/index.js" /** API */ -import { fetchAvgBlockTime } from "@/services/api/block" +import { fetchAvgBlockTime } from "~/services/api/block.js" /** Store */ -import { useAppStore } from "@/store/app.store" +import { useAppStore } from "~/store/app.store.js" const appStore = useAppStore() const props = defineProps({ @@ -56,7 +56,7 @@ const timeline = computed(() => { const maxSize = computed(() => { if (!blocks.value) return 0 - + return Math.max(...blocks.value.map((b) => b.stats.bytes_in_block)) }) const avgBlockTime = ref(0) @@ -111,7 +111,11 @@ onBeforeUnmount(() => { - + { props.period.timeframe === "month" ? props.period.value * 2 : props.period.timeframe === "year" - ? props.period.value * 24 - : 0, + ? props.period.value * 24 + : 0, }).ts / 1_000, ) let to = parseInt( @@ -82,10 +82,11 @@ const getSeries = async () => { from: from, to: to, }) - ).map((v) => { - return { time: v.time, value: v.close } - }) - .reverse() + ) + .map((v) => { + return { time: v.time, value: v.close } + }) + .reverse() } else if (props.series.name === "tvl") { data = ( await fetchTVL({ @@ -384,19 +385,17 @@ watch(