From 707c1c3452ab15b834cdaf9667985b17eee95277 Mon Sep 17 00:00:00 2001 From: kahnix Date: Fri, 29 Nov 2024 12:23:15 +0100 Subject: [PATCH 01/35] feat: initial vector redesign, colour and config changes --- .husky/pre-commit | 1 + .mise.toml | 2 + chains/mainnet/axelar.json | 74 -- chains/mainnet/cosmos.json | 49 +- chains/mainnet/neutron.json | 30 - chains/mainnet/nolus.json | 27 - chains/mainnet/osmosis.json | 32 - chains/testnet/crossfi.json | 11 - index.html | 24 +- package.json | 11 +- public/loader.css | 19 +- public/logo.svg | 83 +- src/assets/images/logo.svg | 25 +- src/assets/logo.svg | 89 +- src/components/CardParameter.vue | 20 +- src/components/CardStatisticsVertical.vue | 21 +- src/components/ChainSummary.vue | 20 +- src/components/ProposalListItem.vue | 184 ++-- src/components/ValidatorCommissionRate.vue | 2 +- src/components/WasmVerification.vue | 191 ++-- src/components/charts/TxsInBlocksChart.vue | 6 +- src/components/charts/apexChartConfig.ts | 8 +- src/components/dynamic/TxsElement.vue | 4 +- src/layouts/components/ChainProfile.vue | 62 +- src/layouts/components/DefaultLayout.vue | 283 ++--- src/layouts/components/NavBarI18n.vue | 29 +- src/layouts/components/NavBarWallet.vue | 6 +- src/layouts/components/NavFooter.vue | 33 +- .../components/NavbarThemeSwitcher.vue | 9 +- src/layouts/components/Sponsors.vue | 25 - src/modules/[chain]/account/[address].vue | 408 +++----- src/modules/[chain]/block/[height].vue | 19 +- src/modules/[chain]/block/index.vue | 39 +- src/modules/[chain]/consensus/index.vue | 68 +- .../[chain]/cosmwasm/[code_id]/contracts.vue | 55 +- .../cosmwasm/[code_id]/transactions.vue | 35 +- src/modules/[chain]/cosmwasm/index.vue | 27 +- src/modules/[chain]/faucet/index.vue | 41 +- src/modules/[chain]/gov/[proposal_id].vue | 140 +-- src/modules/[chain]/ibc/connection.vue | 16 +- .../ibc/connection/[connection_id].vue | 20 +- src/modules/[chain]/index.vue | 88 +- src/modules/[chain]/indexStore.ts | 2 +- src/modules/[chain]/params/index.vue | 16 +- src/modules/[chain]/staking/[validator].vue | 273 ++--- src/modules/[chain]/staking/index.vue | 522 ++++------ src/modules/[chain]/statesync/index.vue | 28 +- src/modules/[chain]/supply/index.vue | 32 +- src/modules/[chain]/tx/[hash].vue | 27 +- src/modules/[chain]/tx/index.vue | 15 +- src/modules/[chain]/uptime/customize.vue | 83 +- src/modules/[chain]/uptime/index.vue | 44 +- src/modules/[chain]/widget/index.vue | 38 +- src/modules/wallet/accounts.vue | 55 +- src/modules/wallet/keplr.vue | 11 +- src/modules/wallet/portfolio.vue | 12 +- src/modules/wallet/receive.vue | 2 +- src/modules/wallet/suggest.vue | 44 +- src/modules/wallet/unisat.vue | 9 +- src/pages/index.vue | 60 +- src/router/index.ts | 26 +- src/stores/useBlockchain.ts | 43 +- src/style.css | 4 +- tailwind.config.js | 34 +- yarn.lock | 983 +++++++++++++++++- 65 files changed, 2365 insertions(+), 2334 deletions(-) create mode 100755 .husky/pre-commit create mode 100644 .mise.toml delete mode 100644 chains/mainnet/axelar.json delete mode 100644 chains/mainnet/neutron.json delete mode 100644 chains/mainnet/nolus.json delete mode 100644 chains/mainnet/osmosis.json delete mode 100644 chains/testnet/crossfi.json delete mode 100644 src/layouts/components/Sponsors.vue diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100755 index 0000000000..8b13789179 --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1 @@ + diff --git a/.mise.toml b/.mise.toml new file mode 100644 index 0000000000..390bc92b88 --- /dev/null +++ b/.mise.toml @@ -0,0 +1,2 @@ +[tools] +node = "23.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/cosmos.json b/chains/mainnet/cosmos.json index 954ec4bba4..23cb4ae69b 100644 --- a/chains/mainnet/cosmos.json +++ b/chains/mainnet/cosmos.json @@ -2,25 +2,46 @@ "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"} + { + "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"} + { + "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" - }] -} + "theme_color": "#9cd3b8", + "assets": [ + { + "base": "uatom", + "symbol": "ATOM", + "exponent": "6", + "coingecko_id": "cosmos", + "logo": "/logos/cosmos.svg" + } + ] +} \ No newline at end of file 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..a62ee7a146 100644 --- a/index.html +++ b/index.html @@ -4,8 +4,8 @@ - Ping Dashboard - Cosmos Blockchain Explorer And Web Wallet - + Vector Explorer + @@ -13,31 +13,17 @@
+
+ - - - + diff --git a/package.json b/package.json index e4f5021547..86b59f94b5 100644 --- a/package.json +++ b/package.json @@ -9,12 +9,13 @@ "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 install" }, "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", @@ -36,6 +37,7 @@ "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", @@ -56,6 +58,8 @@ "vue3-perfect-scrollbar": "^1.6.1" }, "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,6 +67,9 @@ "@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", 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..9b54ba45b6 100644 --- a/public/logo.svg +++ b/public/logo.svg @@ -1,82 +1,3 @@ - - - + + 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/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(