diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000..cf49325470 Binary files /dev/null and b/.DS_Store differ diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000000..bf23473672 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,9 @@ +# .github/dependabot.yml + +version: 2 +updates: + - package-ecosystem: "npm" + directory: "/" + target-branch: "test" + schedule: + interval: "monthly" diff --git a/.husky/prepare-commit-msg b/.husky/prepare-commit-msg new file mode 100644 index 0000000000..939deef6e6 --- /dev/null +++ b/.husky/prepare-commit-msg @@ -0,0 +1,3 @@ +#!/bin/bash +exec < /dev/tty && node_modules/.bin/git-cz --hook || true + diff --git a/.mise.toml b/.mise.toml new file mode 100644 index 0000000000..0f19d1d949 --- /dev/null +++ b/.mise.toml @@ -0,0 +1,2 @@ +[tools] +node = "21.3.0" diff --git a/chains/mainnet/axelar.json b/chains/mainnet/axelar.json deleted file mode 100644 index 28bd6d986b..0000000000 --- a/chains/mainnet/axelar.json +++ /dev/null @@ -1,74 +0,0 @@ -{ - "chain_name": "axelar", - "api": [ - "https://rest.axelar.lava.build/lava-referer-97409c72-1a82-4861-8651-119c15151cbe" - ], - "rpc": [ - "https://tm.axelar.lava.build/lava-referer-97409c72-1a82-4861-8651-119c15151cbe" - ], - "snapshot_provider": "", - "sdk_version": "0.45.6", - "coin_type": "118", - "min_tx_fee": "800", - "addr_prefix": "axelar", - "logo": "/logos/axelar.svg", - "theme_color": "#161723", - "assets": [ - { - "base": "uaxl", - "symbol": "AXL", - "exponent": "6", - "coingecko_id": "axelar", - "logo": "/logos/axelar.svg" - }, - { - "base": "uusdc", - "symbol": "axlUSDC", - "exponent": "6", - "coingecko_id": "usd-coin", - "logo": "/logos/usdc.svg" - }, - { - "base": "uusdt", - "symbol": "axlUSDT", - "exponent": "6", - "coingecko_id": "tether", - "logo": "/logos/usdt.svg" - }, - { - "base": "dai-wei", - "symbol": "axlDAI", - "exponent": "18", - "coingecko_id": "dai", - "logo": "/logos/dai.svg" - }, - { - "base": "weth-wei", - "symbol": "axlWETH", - "exponent": "18", - "coingecko_id": "ethereum", - "logo": "/logos/weth.svg" - }, - { - "base": "wmatic-wei", - "symbol": "axlWMATIC", - "exponent": "18", - "coingecko_id": "matic-network", - "logo": "/logos/wmatic.svg" - }, - { - "base": "wavax-wei", - "symbol": "axlWAVAX", - "exponent": "18", - "coingecko_id": "avalanche-2", - "logo": "/logos/wavax.svg" - }, - { - "base": "dot-planck", - "symbol": "axlDOT", - "exponent": "10", - "coingecko_id": "polkadot", - "logo": "/logos/dot.svg" - } - ] -} diff --git a/chains/mainnet/chain.json b/chains/mainnet/chain.json new file mode 100644 index 0000000000..837be6c453 --- /dev/null +++ b/chains/mainnet/chain.json @@ -0,0 +1,39 @@ +{ + "chain_name": "vector", + "registry_name": "vector", + "api": [ + { + "provider": "PlayonVector", + "address": "https://archive-api-1.playonvector.com/" + }, + { + "provider": "Seraphim", + "address": "https://archive-api-vector-1.seraphim.zone" + } + ], + "rpc": [ + { + "provider": "PlayonVector", + "address": "https://archive-rpc-1.playonvector.com/" + }, + { + "provider": "Seraphim", + "address": "https://archive-rpc-vector-1.seraphim.zone" + } + ], + "sdk_version": "0.50.10", + "coin_type": "118", + "min_tx_fee": "800", + "addr_prefix": "vector", + "logo": "/logo.svg", + "theme_color": "#6e6e6e", + "assets": [ + { + "base": "uvctr", + "symbol": "VCTR", + "exponent": "6", + "coingecko_id": "vector-chain", + "logo": "/logo.svg" + } + ] +} \ No newline at end of file diff --git a/chains/mainnet/cosmos.json b/chains/mainnet/cosmos.json deleted file mode 100644 index 954ec4bba4..0000000000 --- a/chains/mainnet/cosmos.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "chain_name": "cosmos", - "registry_name": "cosmoshub", - "api": [ - {"provider": "cosmos.directory", "address": "https://rest.cosmos.directory/cosmoshub"}, - {"provider": "publicnode", "address": "https://cosmos-rest.publicnode.com"}, - {"provider": "silknode", "address": "https://cosmos.api.silknodes.io"} - ], - "rpc": [ - {"provider": "icycro", "address": "https://cosmos-rpc.icycro.org"}, - {"provider": "dragonstake", "address": "https://rpc.cosmos.dragonstake.io"}, - {"provider": "Golden Ratio Staking", "address": "https://rpc-cosmoshub.goldenratiostaking.net"} - ], - "sdk_version": "0.45.1", - "coin_type": "118", - "min_tx_fee": "800", - "addr_prefix": "cosmos", - "logo": "/logos/cosmos.svg", - "assets": [{ - "base": "uatom", - "symbol": "ATOM", - "exponent": "6", - "coingecko_id": "cosmos", - "logo": "/logos/cosmos.svg" - }] -} diff --git a/chains/mainnet/neutron.json b/chains/mainnet/neutron.json deleted file mode 100644 index 76fc3dd6d2..0000000000 --- a/chains/mainnet/neutron.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "chain_name": "neutron", - "api": [ - {"provider": "Polkachu", "address": "https://neutron-api.polkachu.com"}, - {"provider": "NodeStake", "address": "https://api.neutron.nodestake.top"}, - {"provider": "Allnodes", "address": "https://neutron-rest.publicnode.com"} - ], - "rpc": [ - {"provider": "Polkachu", "address": "https://neutron-rpc.polkachu.com"}, - {"provider": "NodeStake", "address": "https://rpc.neutron.nodestake.top"}, - {"provider": "Allnodes", "address": "https://neutron-rpc.publicnode.com:443"} - ], - "provider_chain": { - "api": ["https://rest.cosmos.directory/cosmoshub"] - }, - "features": ["dashboard", "blocks", "ibc", "cosmwasm", "uptime", "parameters", "state-sync", "consensus", "supply", "widget"], - "sdk_version": "0.45.1", - "coin_type": "118", - "min_tx_fee": "8000", - "assets": [{ - "base": "untrn", - "symbol": "NTRN", - "exponent": "6", - "coingecko_id": "neutron", - "logo": "/logos/neutron.svg" - }], - "addr_prefix": "neutron", - "theme_color": "#161723", - "logo": "/logos/neutron.svg" -} diff --git a/chains/mainnet/nolus.json b/chains/mainnet/nolus.json deleted file mode 100644 index 81bdd48470..0000000000 --- a/chains/mainnet/nolus.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "chain_name": "nolus", - "coingecko": "nolus", - "api": [ - {"provider": "Nolus", "address": "https://pirin-cl.nolus.network:1317"}, - {"provider": "LavenderFive", "address": "https://nolus-api.lavenderfive.com:443"}, - {"provider": "Allnodes", "address": "https://nolus-rest.publicnode.com"} - ], - "rpc": [ - {"provider": "Nolus", "address": "https://pirin-cl.nolus.network:26657"}, - {"provider": "LavenderFive", "address": "https://nolus-rpc.lavenderfive.com:443"}, - {"provider": "Allnodes", "address": "https://nolus-rpc.publicnode.com:443"} - ], - "snapshot_provider": "", - "sdk_version": "v0.47.6", - "coin_type": "118", - "min_tx_fee": "0", - "addr_prefix": "nolus", - "logo": "/logos/nolus.svg", - "assets": [{ - "base": "unls", - "symbol": "NLS", - "exponent": "6", - "coingecko_id": "nolus", - "logo": "/logos/nolus.svg" - }] -} diff --git a/chains/mainnet/osmosis.json b/chains/mainnet/osmosis.json deleted file mode 100644 index 35669f39a9..0000000000 --- a/chains/mainnet/osmosis.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "chain_name": "osmosis", - "coingecko": "osmosis", - "api": ["https://lcd.osmosis.zone","https://api-osmosis-ia.cosmosia.notional.ventures", "https://osmosis-api.polkachu.com", "https://lcd-osmosis.blockapsis.com"], - "rpc": ["https://rpc.osmosis.zone", "https://rpc-osmosis-ia.cosmosia.notional.ventures:443", "https://osmosis-rpc.polkachu.com:443", "https://osmosis.validator.network:443", "https://rpc-osmosis.blockapsis.com:443"], - "snapshot_provider": "", - "sdk_version": "0.46.1", - "coin_type": "118", - "min_tx_fee": "800", - "addr_prefix": "osmo", - "logo": "/logos/osmosis.jpg", - "theme_color": "#812cd6", - "assets": [{ - "base": "uosmo", - "symbol": "OSMO", - "exponent": "6", - "coingecko_id": "osmosis", - "logo": "/logos/osmosis.jpg" - },{ - "base": "uion", - "symbol": "ION", - "exponent": "6", - "coingecko_id": "ion", - "logo": "/logos/osmosis.jpg" - },{ - "base": "usomm", - "symbol": "SOMM", - "exponent": "6", - "coingecko_id": "somm", - "logo": "" - }] -} diff --git a/chains/testnet/crossfi.json b/chains/testnet/crossfi.json deleted file mode 100644 index 5414f3f202..0000000000 --- a/chains/testnet/crossfi.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "chain_name": "crossfi-testnet-1", - "api": ["https://crossfi-testnet-api.forpeaky.xyz"], - "rpc": ["https://crossfi-testnet-rpc.forpeaky.xyz"], - "coingecko": "", - "snapshot_provider": "", - "sdk_version": "0.47.1", - "coin_type": "118", - "min_tx_fee": "500", - "addr_prefix": "crossfi" - } \ No newline at end of file diff --git a/index.html b/index.html index 156b08af67..4205051334 100644 --- a/index.html +++ b/index.html @@ -2,10 +2,10 @@ - + - Ping Dashboard - Cosmos Blockchain Explorer And Web Wallet - + Vector Explorer + @@ -13,31 +13,17 @@
+
+ - - - + diff --git a/package.json b/package.json index e4f5021547..fb0df1f452 100644 --- a/package.json +++ b/package.json @@ -9,53 +9,58 @@ "build": "run-p type-check build-only", "preview": "vite preview", "build-only": "vite build", - "type-check": "vue-tsc --noEmit" + "type-check": "vue-tsc --noEmit", + "postinstall": "husky" }, "dependencies": { "@chenfengyuan/vue-countdown": "2", - "@cosmjs/crypto": "^0.32.3", "@cosmjs/amino": "^0.32.3", + "@cosmjs/crypto": "^0.32.3", "@cosmjs/encoding": "^0.32.3", "@cosmjs/stargate": "^0.32.3", "@iconify/vue": "^4.1.0", "@intlify/unplugin-vue-i18n": "^0.8.2", "@leapwallet/cosmos-snap-provider": "^0.1.20", "@leapwallet/name-matcha": "^1.1.0", - "@osmonauts/lcd": "^0.8.0", + "@osmonauts/lcd": "^1.0.3", "@personaxyz/ad-sdk": "0.0.25", "@ping-pub/chain-registry-client": "^0.0.25", + "@vercel/analytics": "^1.4.1", "@vitejs/plugin-vue-jsx": "^3.0.0", "@vueuse/core": "^9.12.0", "@vueuse/integrations": "^10.1.2", "@vueuse/math": "^9.12.0", "apexcharts": "^3.37.1", "autoprefixer": "^10.4.14", - "axios": "^1.3.2", + "axios": "^1.7.8", "buffer": "^6.0.3", "build": "^0.1.4", "cross-fetch": "^3.1.5", "daisyui": "^3.1.0", "dayjs": "^1.11.7", + "husky-init": "^8.0.0", "lazy-load-vue3": "^1.3.0", "long": "^5.2.1", "md-editor-v3": "^2.8.1", "numeral": "^2.0.6", "osmojs": "^14.0.0-rc.0", "pinia": "^2.0.28", - "postcss": "^8.4.23", + "postcss": "^8.4.49", "qrcode": "^1.5.3", "tailwindcss": "^3.3.1", "theme-change": "^2.5.0", "vite-plugin-vue-layouts": "^0.7.0", "vue": "^3.2.45", - "vue-i18n": "^9.2.2", + "vue-i18n": "^9.14.2", "vue-prism-component": "^2.0.0", "vue-router": "^4.1.6", "vue3-apexcharts": "^1.4.1", "vue3-json-viewer": "^2.2.2", - "vue3-perfect-scrollbar": "^1.6.1" + "vue3-perfect-scrollbar": "^2.0.0" }, "devDependencies": { + "@commitlint/cli": "^19.6.0", + "@commitlint/config-conventional": "^19.6.0", "@osmonauts/telescope": "^0.88.2", "@types/marked": "^4.0.8", "@types/node": "^18.11.12", @@ -63,17 +68,30 @@ "@types/semver": "7.5.0", "@vitejs/plugin-vue": "^4.0.0", "@vue/tsconfig": "^0.1.3", + "commitizen": "^4.3.1", + "cz-conventional-changelog": "^3.3.0", + "husky": "^9.1.7", "npm-run-all": "^4.1.5", "prettier": "^2.7.1", "sass": "^1.58.0", "shiki": "^1.0.0-beta.0", "typescript": "~4.9.5", "unplugin-auto-import": "^0.13.0", - "unplugin-vue-components": "^0.23.0", + "unplugin-vue-components": "^0.27.5", "unplugin-vue-define-options": "1.1.4", "vite": "^4.4.9", "vite-plugin-pages": "^0.28.0", "vue-json-viewer": "3", "vue-tsc": "^1.0.12" + }, + "config": { + "commitizen": { + "path": "cz-conventional-changelog" + } + }, + "husky": { + "hooks": { + "prepare-commit-msg": "exec < /dev/tty && npx cz --hook || true" + } } } diff --git a/public/loader.css b/public/loader.css index c3a9a13462..125c24c7b4 100644 --- a/public/loader.css +++ b/public/loader.css @@ -1,11 +1,21 @@ +body{ + margin: 0; +} + #loading-bg { - background: var(--initial-loader-bg, #fff); + background: #212121; + display:flex; + position: relative; + height: 100vh; + flex-direction: column; + justify-content: center; + align-items: center; } .loading-logo { - position: absolute; + /* position: absolute; inset-block-start: 40%; - inset-inline-start: calc(50% - 75px); + inset-inline-start: calc(50% - 75px); */ } .pre-loading { @@ -14,8 +24,9 @@ border: 3px solid transparent; block-size: 55px; border-radius: 50%; + top: 20px; inline-size: 55px; - inset-block-start: calc(40% + 35px); + inset-block-start: calc(40% + 140px); inset-inline-start: calc(50% - 27.5px); } diff --git a/public/logo.svg b/public/logo.svg index a620f52a3e..4aec411298 100644 --- a/public/logo.svg +++ b/public/logo.svg @@ -1,82 +1,4 @@ - - - + + + diff --git a/src/App.vue b/src/App.vue index 00768e06b9..d345064df2 100644 --- a/src/App.vue +++ b/src/App.vue @@ -2,6 +2,7 @@ import { themeChange } from 'theme-change'; import { onMounted } from 'vue'; import TxDialog from './components/TxDialog.vue'; +import { Analytics } from '@vercel/analytics/vue'; onMounted(() => { themeChange(false); @@ -9,7 +10,8 @@ onMounted(() => {
+
+
diff --git a/src/assets/images/logo.svg b/src/assets/images/logo.svg index 633839f44e..628eae4a31 100644 --- a/src/assets/images/logo.svg +++ b/src/assets/images/logo.svg @@ -1,18 +1,9 @@ - - - - - - - - - - - - - - - - - + + + + + + + + diff --git a/src/assets/logo.svg b/src/assets/logo.svg index a620f52a3e..628eae4a31 100644 --- a/src/assets/logo.svg +++ b/src/assets/logo.svg @@ -1,82 +1,9 @@ - - - + + + + + + + + diff --git a/src/assets/logo_letter.svg b/src/assets/logo_letter.svg new file mode 100644 index 0000000000..9b54ba45b6 --- /dev/null +++ b/src/assets/logo_letter.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/pentagon.svg b/src/assets/pentagon.svg new file mode 100644 index 0000000000..80ab274c88 --- /dev/null +++ b/src/assets/pentagon.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/assets/profile.svg b/src/assets/profile.svg new file mode 100644 index 0000000000..9727638050 --- /dev/null +++ b/src/assets/profile.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/assets/vector.svg b/src/assets/vector.svg new file mode 100644 index 0000000000..1897a143ef --- /dev/null +++ b/src/assets/vector.svg @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/vector2.svg b/src/assets/vector2.svg new file mode 100644 index 0000000000..0f97c3476b --- /dev/null +++ b/src/assets/vector2.svg @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/components/CardParameter.vue b/src/components/CardParameter.vue index d157a5fd7c..26fcaf6368 100644 --- a/src/components/CardParameter.vue +++ b/src/components/CardParameter.vue @@ -13,7 +13,7 @@ function calculateValue(value: any) { if (Array.isArray(value)) { return (value[0] && value[0].amount) || '-'; } - if(String(value).search(/^\d+s$/g) > -1) { + if (String(value).search(/^\d+s$/g) > -1) { return formatSeconds(value) } const newValue = Number(value); @@ -28,24 +28,16 @@ function calculateValue(value: any) { } function formatTitle(v: string) { - if(!v) return "" + if (!v) return "" return v.replace(/_/g, " ") }
+
{{ props.cardItem?.title }}
-
-
+
+
{{ formatTitle(item?.subtitle) }}
{{ calculateValue(item?.value) }}
diff --git a/src/components/CardStatisticsVertical.vue b/src/components/CardStatisticsVertical.vue index e4bbc75dfe..3866d08e1f 100644 --- a/src/components/CardStatisticsVertical.vue +++ b/src/components/CardStatisticsVertical.vue @@ -22,24 +22,15 @@ const isPositive = controlledComputed(