mirror of
https://github.com/freqtrade/frequi.git
synced 2024-11-23 11:35:14 +00:00
Add botstorewrapper
This commit is contained in:
parent
b2f893b9ec
commit
a2d8b68abb
|
@ -4,7 +4,8 @@ import Vuex from 'vuex';
|
|||
import userService from '@/shared/userService';
|
||||
import { getCurrentTheme, getTheme, storeCurrentTheme } from '@/shared/themes';
|
||||
import axios, { AxiosInstance } from 'axios';
|
||||
import { createBotSubStore, BotStoreGetters } from './modules/ftbot';
|
||||
import createBotStore from './modules/botStoreWrapper';
|
||||
import { BotStoreGetters } from './modules/ftbot';
|
||||
import alertsModule from './modules/alerts';
|
||||
import layoutModule from './modules/layout';
|
||||
import settingsModule from './modules/settings';
|
||||
|
@ -16,7 +17,7 @@ const initCurrentTheme = getCurrentTheme();
|
|||
|
||||
export default new Vuex.Store({
|
||||
modules: {
|
||||
ftbot: createBotSubStore(),
|
||||
ftbot: createBotStore(),
|
||||
alerts: alertsModule,
|
||||
layout: layoutModule,
|
||||
uiSettings: settingsModule,
|
||||
|
@ -122,7 +123,7 @@ export default new Vuex.Store({
|
|||
commit('setRefreshing', false);
|
||||
}
|
||||
},
|
||||
async refreshSlow({ dispatch, commit, getters, state }, forceUpdate = false) {
|
||||
async refreshSlow({ dispatch, getters, state }, forceUpdate = false) {
|
||||
if (state.refreshing && !forceUpdate) {
|
||||
return;
|
||||
}
|
||||
|
@ -137,7 +138,7 @@ export default new Vuex.Store({
|
|||
updates.push(dispatch('ftbot/getBlacklist'));
|
||||
|
||||
await Promise.all(updates);
|
||||
commit('ftbot/updateRefreshRequired', false);
|
||||
dispatch('ftbot/setRefreshRequired', false);
|
||||
}
|
||||
},
|
||||
refreshFrequent({ dispatch }, slow = true) {
|
||||
|
|
36
src/store/modules/botStoreWrapper.ts
Normal file
36
src/store/modules/botStoreWrapper.ts
Normal file
|
@ -0,0 +1,36 @@
|
|||
import { BotStoreActions, BotStoreGetters, createBotSubStore } from './ftbot';
|
||||
|
||||
export default function createBotStore() {
|
||||
const state = {
|
||||
selectedBot: 'ftbot.0',
|
||||
};
|
||||
const actions = {
|
||||
// Actions automatically filled below
|
||||
addBot(context, botName: string) {
|
||||
//
|
||||
},
|
||||
};
|
||||
const getters = {};
|
||||
// Autocreate getters
|
||||
Object.keys(BotStoreGetters).forEach((e) => {
|
||||
getters[e] = (state, getters) => {
|
||||
return getters[`${state.selectedBot}/${e}`];
|
||||
};
|
||||
});
|
||||
// Autocreate Actions
|
||||
Object.keys(BotStoreActions).forEach((e) => {
|
||||
actions[e] = ({ state, dispatch }, ...args) => {
|
||||
return dispatch(`${state.selectedBot}/${e}`, ...args);
|
||||
};
|
||||
});
|
||||
|
||||
return {
|
||||
namespaced: true,
|
||||
modules: {
|
||||
'ftbot.0': createBotSubStore(),
|
||||
},
|
||||
state,
|
||||
getters,
|
||||
actions,
|
||||
};
|
||||
}
|
|
@ -87,6 +87,7 @@ export enum BotStoreGetters {
|
|||
|
||||
export enum BotStoreActions {
|
||||
ping = 'ping',
|
||||
setRefreshRequired = 'setRefreshRequired',
|
||||
setDetailTrade = 'setDetailTrade',
|
||||
setSelectedPair = 'setSelectedPair',
|
||||
getTrades = 'getTrades',
|
||||
|
@ -388,6 +389,9 @@ export function createBotSubStore() {
|
|||
.catch(console.error);
|
||||
}
|
||||
},
|
||||
[BotStoreActions.setRefreshRequired]({ commit }, refreshRequired: boolean) {
|
||||
commit('setRefreshRequired', refreshRequired);
|
||||
},
|
||||
[BotStoreActions.setDetailTrade]({ commit }, trade: Trade) {
|
||||
commit('setDetailTrade', trade);
|
||||
},
|
||||
|
|
|
@ -54,41 +54,42 @@ export interface FtbotStateType {
|
|||
backtestHistory: Record<string, StrategyBacktestResult>;
|
||||
}
|
||||
|
||||
const state: FtbotStateType = {
|
||||
version: '',
|
||||
lastLogs: [],
|
||||
refreshRequired: true,
|
||||
trades: [],
|
||||
openTrades: [],
|
||||
tradeCount: 0,
|
||||
performanceStats: [],
|
||||
whitelist: [],
|
||||
blacklist: [],
|
||||
profit: {},
|
||||
botState: undefined,
|
||||
balance: {},
|
||||
dailyStats: {},
|
||||
pairlistMethods: [],
|
||||
detailTradeId: undefined,
|
||||
selectedPair: '',
|
||||
candleData: {},
|
||||
history: {},
|
||||
strategyPlotConfig: undefined,
|
||||
customPlotConfig: {},
|
||||
plotConfigName: getPlotConfigName(),
|
||||
availablePlotConfigNames: getAllPlotConfigNames(),
|
||||
strategyList: [],
|
||||
strategy: {},
|
||||
pairlist: [],
|
||||
currentLocks: undefined,
|
||||
// backtesting
|
||||
backtestRunning: false,
|
||||
backtestProgress: 0.0,
|
||||
backtestStep: BacktestSteps.none,
|
||||
backtestTradeCount: 0,
|
||||
backtestResult: undefined,
|
||||
selectedBacktestResultKey: '',
|
||||
backtestHistory: {},
|
||||
const state = (): FtbotStateType => {
|
||||
return {
|
||||
version: '',
|
||||
lastLogs: [],
|
||||
refreshRequired: true,
|
||||
trades: [],
|
||||
openTrades: [],
|
||||
tradeCount: 0,
|
||||
performanceStats: [],
|
||||
whitelist: [],
|
||||
blacklist: [],
|
||||
profit: {},
|
||||
botState: undefined,
|
||||
balance: {},
|
||||
dailyStats: {},
|
||||
pairlistMethods: [],
|
||||
detailTradeId: undefined,
|
||||
selectedPair: '',
|
||||
candleData: {},
|
||||
history: {},
|
||||
strategyPlotConfig: undefined,
|
||||
customPlotConfig: {},
|
||||
plotConfigName: getPlotConfigName(),
|
||||
availablePlotConfigNames: getAllPlotConfigNames(),
|
||||
strategyList: [],
|
||||
strategy: {},
|
||||
pairlist: [],
|
||||
currentLocks: undefined,
|
||||
// backtesting
|
||||
backtestRunning: false,
|
||||
backtestProgress: 0.0,
|
||||
backtestStep: BacktestSteps.none,
|
||||
backtestTradeCount: 0,
|
||||
backtestResult: undefined,
|
||||
selectedBacktestResultKey: '',
|
||||
backtestHistory: {},
|
||||
};
|
||||
};
|
||||
|
||||
export default state;
|
||||
|
|
Loading…
Reference in New Issue
Block a user