diff --git a/new-web/layouts/default.vue b/new-web/layouts/default.vue
index 8ede7fc..33d2e60 100644
--- a/new-web/layouts/default.vue
+++ b/new-web/layouts/default.vue
@@ -211,6 +211,17 @@
}}
+
+
+ mdi-lock
+
+
+ {{
+ $t('pages.blocks.variance')
+ }}
+ {{ stats.percent }}%
+
+
mdi-timer-sand
diff --git a/new-web/store/index.js b/new-web/store/index.js
index 960fb7d..00e8f82 100644
--- a/new-web/store/index.js
+++ b/new-web/store/index.js
@@ -1,11 +1,11 @@
-import axios from 'axios'
-import consola from 'consola'
-import config from '@/params/config.json'
-import networks from '@/params/networks.json'
+import axios from 'axios';
+import consola from 'consola';
+import config from '@/params/config.json';
+import networks from '@/params/networks.json';
-const TARGET_TIME = networks[config.network].blockTime
-const EPOCH_LENGTH = networks[config.network].epochLength
-const API_URL = config.api + '/api'
+const TARGET_TIME = networks[config.network].blockTime;
+const EPOCH_LENGTH = networks[config.network].epochLength;
+const API_URL = config.api + '/api';
export const state = () => ({
env: {
@@ -40,39 +40,44 @@ export const state = () => ({
epoch: 0,
dagSize: 0, // in MB
now: Date.now(), // global now Date for time since calcs
-})
+ percent: 0,
+});
export const mutations = {
SET_STATS(state, info) {
- state.minersOnline = info.minersOnline || state.minersOnline
- state.poolHashRate = info.poolHashRate || state.poolHashRate
- state.lastBlockFound = info.lastBlockFound || state.lastBlockFound
- state.roundShares = info.roundShares || state.roundShares
- state.poolFee = info.poolFee || state.poolFee
- state.height = info.height || state.height
- state.difficulty = info.difficulty || state.difficulty
- state.networkHashrate = state.difficulty / info.blocktime // Verwenden Sie die blocktime von der API
- state.epoch = Math.trunc(info.height / EPOCH_LENGTH)
- state.dagSize = state.epoch * 8192 / 1024 / 1024 + 1
+ state.minersOnline = info.minersOnline || state.minersOnline;
+ state.poolHashRate = info.poolHashRate || state.poolHashRate;
+ state.lastBlockFound = info.lastBlockFound || state.lastBlockFound;
+ state.roundShares = info.roundShares || state.roundShares;
+ state.poolFee = info.poolFee || state.poolFee;
+ state.height = info.height || state.height;
+ state.difficulty = info.difficulty || state.difficulty;
+ state.networkHashrate = state.difficulty / info.blocktime; // Use the blocktime from the API
+ state.epoch = Math.trunc(info.height / EPOCH_LENGTH);
+ state.dagSize = (state.epoch * 8192) / 1024 / 1024 + 1;
+
+ // Calculate the percent
+ const percent = (state.roundShares / state.difficulty) * 100;
+ state.percent = percent.toFixed(0); // Store the result in the state
},
SET_MINERS(state, miners) {
- state.miners = miners
+ state.miners = miners;
},
SET_BLOCKS(state, blocks) {
- state.blocks = blocks
+ state.blocks = blocks;
},
SET_PAYMENTS(state, txns) {
- state.payments = txns
+ state.payments = txns;
},
SET_NOW(state, now) {
- state.now = now
+ state.now = now;
},
-}
+};
export const actions = {
async stats({ commit }) {
try {
- const { data } = await axios.get(API_URL + '/stats')
+ const { data } = await axios.get(`${API_URL}/stats`);
if (data) {
const info = {
minersOnline: data.minersTotal,
@@ -80,45 +85,50 @@ export const actions = {
height: data.nodes[0].height,
difficulty: data.nodes[0].difficulty,
lastBlockFound: data.stats.lastBlockFound,
- blocktime: data.nodes[0].blocktime, // Hinzufügen der blocktime von der API
- }
- commit('SET_STATS', info)
+ blocktime: data.nodes[0].blocktime, // Add the blocktime from the API
+ roundShares: data.stats.roundShares, // Extrahieren Sie den Wert von roundShares aus den API-Daten
+ };
+ commit('SET_STATS', info);
}
} catch (error) {
- consola.error(new Error(error))
+ consola.error(error);
+ throw new Error('Failed to fetch stats');
}
},
async miners({ commit }) {
try {
- const { data } = await axios.get(API_URL + '/miners')
+ const { data } = await axios.get(`${API_URL}/miners`);
if (data) {
- commit('SET_MINERS', data.miners)
+ commit('SET_MINERS', data.miners);
}
} catch (error) {
- consola.error(new Error(error))
+ consola.error(error);
+ throw new Error('Failed to fetch miners');
}
},
async blocks({ commit }) {
try {
- const { data } = await axios.get(API_URL + '/blocks')
+ const { data } = await axios.get(`${API_URL}/blocks`);
if (data) {
- commit('SET_BLOCKS', data)
+ commit('SET_BLOCKS', data);
}
} catch (error) {
- consola.error(new Error(error))
+ consola.error(error);
+ throw new Error('Failed to fetch blocks');
}
},
async payments({ commit }) {
try {
- const { data } = await axios.get(API_URL + '/payments')
+ const { data } = await axios.get(`${API_URL}/payments`);
if (data) {
- commit('SET_PAYMENTS', data)
+ commit('SET_PAYMENTS', data);
}
} catch (error) {
- consola.error(new Error(error))
+ consola.error(error);
+ throw new Error('Failed to fetch payments');
}
},
now({ commit }) {
- commit('SET_NOW', Date.now())
+ commit('SET_NOW', Date.now());
},
-}
+};