From bc568224cd3ffd0c76c6bb0309328555cc701a36 Mon Sep 17 00:00:00 2001 From: janmichek Date: Mon, 13 May 2024 13:52:33 +0200 Subject: [PATCH 1/7] add contracts chart --- src/components/ChartsNavigation.vue | 5 +++++ src/components/ContractsChartPanel.vue | 8 ++++---- src/components/TheNavigation.vue | 4 ++++ src/pages/charts/contracts.vue | 28 ++++++++++++++++++++++++++ src/stores/charts.js | 16 +++++++++++++++ src/stores/contracts.js | 14 ------------- 6 files changed, 57 insertions(+), 18 deletions(-) create mode 100644 src/pages/charts/contracts.vue diff --git a/src/components/ChartsNavigation.vue b/src/components/ChartsNavigation.vue index 80a9a5b90..eb00ace72 100644 --- a/src/components/ChartsNavigation.vue +++ b/src/components/ChartsNavigation.vue @@ -11,6 +11,11 @@ class="charts-navigation__link"> Keyblocks + + Contracts + diff --git a/src/components/ContractsChartPanel.vue b/src/components/ContractsChartPanel.vue index a60a68075..b9119348c 100644 --- a/src/components/ContractsChartPanel.vue +++ b/src/components/ContractsChartPanel.vue @@ -23,13 +23,13 @@ diff --git a/src/stores/charts.js b/src/stores/charts.js index 3d730105f..3b0121b47 100644 --- a/src/stores/charts.js +++ b/src/stores/charts.js @@ -8,6 +8,7 @@ export const useChartsStore = defineStore('charts', () => { const transactionsStatistics = ref(null) const keyblocksStatistics = ref(null) + const contractsStatistics = ref(null) async function fetchTransactionsStatistics(interval, limit, customInterval, txType) { transactionsStatistics.value = null @@ -37,10 +38,25 @@ export const useChartsStore = defineStore('charts', () => { keyblocksStatistics.value = customInterval ? data.data.reverse() : data.data.slice(1).reverse() } + async function fetchContractsStatistics(interval, limit, customInterval) { + contractsStatistics.value = null + + const intervalSlug = customInterval + ? `&min_start_date=${customInterval.minStart}&max_start_date=${customInterval.maxStart}&limit=1000` + : `&interval_by=${interval}&limit=${parseInt(limit) + 1}` + + const { data } = await axios.get(`${MIDDLEWARE_URL}/v3/statistics/transactions?tx_type=contract_call${intervalSlug}`) + console.log('data', data) + // remove last interval from the response not to show current interval that is being built + contractsStatistics.value = customInterval ? data.data.reverse() : data.data.slice(1).reverse() + } + return { keyblocksStatistics, transactionsStatistics, + contractsStatistics, fetchKeyblocksStatistics, fetchTransactionsStatistics, + fetchContractsStatistics, } }) diff --git a/src/stores/contracts.js b/src/stores/contracts.js index 15c2a47a9..dcc9c25ce 100644 --- a/src/stores/contracts.js +++ b/src/stores/contracts.js @@ -29,19 +29,6 @@ export const useContractsStore = defineStore('contracts', () => { rawContracts.value = data } - async function fetchContractsStatistics(interval, limit, customInterval) { - contractsStatistics.value = null - - const slug = customInterval - ? `&min_start_date=${customInterval.minStart}&max_start_date=${customInterval.maxStart}&limit=1000` - : `&interval_by=${interval}&limit=${limit}` - - const { data } = await axios.get(`${MIDDLEWARE_URL}/v3/statistics/transactions?tx_type=contract_call${slug}`) - - // remove last interval from the response not to show current interval that is being built - contractsStatistics.value = customInterval ? data.data.reverse() : data.data.slice(1).reverse() - } - async function fetchContractsCount() { contractsCount.value = null const { data } = await axios.get(`${MIDDLEWARE_URL}/v3/transactions/count?type=contract_create`) @@ -65,6 +52,5 @@ export const useContractsStore = defineStore('contracts', () => { contractsStatistics, fetchContracts, fetchContractsCount, - fetchContractsStatistics, } }) From d92dcfe2379e0e0b8f74405fd98222f75746cb0d Mon Sep 17 00:00:00 2001 From: janmichek Date: Mon, 13 May 2024 14:04:46 +0200 Subject: [PATCH 2/7] fix loading --- src/pages/charts/contracts.vue | 4 +--- src/pages/charts/keyblocks.vue | 4 +--- src/pages/charts/transactions.vue | 4 ---- 3 files changed, 2 insertions(+), 10 deletions(-) diff --git a/src/pages/charts/contracts.vue b/src/pages/charts/contracts.vue index c98400b75..4c89f449f 100644 --- a/src/pages/charts/contracts.vue +++ b/src/pages/charts/contracts.vue @@ -15,8 +15,7 @@ @@ -24,5 +23,4 @@ diff --git a/src/pages/charts/keyblocks.vue b/src/pages/charts/keyblocks.vue index c8f185748..989a480ab 100644 --- a/src/pages/charts/keyblocks.vue +++ b/src/pages/charts/keyblocks.vue @@ -15,8 +15,7 @@ @@ -24,5 +23,4 @@ diff --git a/src/pages/charts/transactions.vue b/src/pages/charts/transactions.vue index f017535d3..85bc76fbe 100644 --- a/src/pages/charts/transactions.vue +++ b/src/pages/charts/transactions.vue @@ -16,10 +16,8 @@ @@ -27,6 +25,4 @@ From 42c1f6cd2e5eefffd29d15b6d6e223add41331d3 Mon Sep 17 00:00:00 2001 From: janmichek Date: Mon, 13 May 2024 14:07:22 +0200 Subject: [PATCH 3/7] parametrize chart with different default intervals --- src/components/ContractsChartPanel.vue | 10 ++++++++-- src/pages/charts/contracts.vue | 3 ++- src/pages/charts/transactions.vue | 2 +- src/pages/contracts/index.vue | 5 ++++- 4 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/components/ContractsChartPanel.vue b/src/components/ContractsChartPanel.vue index b9119348c..6c52cef0c 100644 --- a/src/components/ContractsChartPanel.vue +++ b/src/components/ContractsChartPanel.vue @@ -25,13 +25,19 @@ import { storeToRefs } from 'pinia' import { useChartsStore } from '@/stores/charts' import LineChart from '@/components/LineChart' -import { CHART_INTERVALS_OPTIONS } from '@/utils/constants' const chartsStore = useChartsStore() const { contractsStatistics } = storeToRefs(chartsStore) const { fetchContractsStatistics } = chartsStore -const selectedRange = ref(CHART_INTERVALS_OPTIONS[0]) +const props = defineProps({ + range: { + required: true, + type: Object, + }, +}) + +const selectedRange = ref(props.range) await useAsyncData(async() => { await loadContractsStatistics() diff --git a/src/pages/charts/contracts.vue b/src/pages/charts/contracts.vue index 4c89f449f..f71d241f8 100644 --- a/src/pages/charts/contracts.vue +++ b/src/pages/charts/contracts.vue @@ -15,12 +15,13 @@ diff --git a/src/pages/charts/transactions.vue b/src/pages/charts/transactions.vue index 85bc76fbe..8ab956f31 100644 --- a/src/pages/charts/transactions.vue +++ b/src/pages/charts/transactions.vue @@ -24,5 +24,5 @@ diff --git a/src/pages/contracts/index.vue b/src/pages/contracts/index.vue index fd4fee74b..3fe71d989 100644 --- a/src/pages/contracts/index.vue +++ b/src/pages/contracts/index.vue @@ -16,7 +16,9 @@ @@ -26,6 +28,7 @@ import ContractsPanel from '@/components/ContractsPanel' import PageHeader from '@/components/PageHeader' import { contractsHints } from '@/utils/hints/contractsHints' +import { CHART_INTERVALS_OPTIONS } from '@/utils/constants' const { isLoading } = useLoading() From b0af0c232f2173124d143748241f477e8b13a1eb Mon Sep 17 00:00:00 2001 From: janmichek Date: Mon, 13 May 2024 15:35:47 +0200 Subject: [PATCH 4/7] text fixes --- src/components/ChartsNavigation.vue | 2 +- src/components/ContractsChartPanel.vue | 2 +- src/components/TransactionsChartPanel.vue | 4 ++-- src/stores/charts.js | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/components/ChartsNavigation.vue b/src/components/ChartsNavigation.vue index eb00ace72..91bb00217 100644 --- a/src/components/ChartsNavigation.vue +++ b/src/components/ChartsNavigation.vue @@ -14,7 +14,7 @@ - Contracts + Smart Contracts diff --git a/src/components/ContractsChartPanel.vue b/src/components/ContractsChartPanel.vue index 6c52cef0c..a2703d5c4 100644 --- a/src/components/ContractsChartPanel.vue +++ b/src/components/ContractsChartPanel.vue @@ -1,7 +1,7 @@ diff --git a/src/pages/names/index.vue b/src/pages/names/index.vue index c6261acc8..c27369e08 100644 --- a/src/pages/names/index.vue +++ b/src/pages/names/index.vue @@ -15,7 +15,9 @@