mirror of
https://github.com/stronk-dev/LivepeerEvents.git
synced 2025-07-05 10:45:10 +02:00
161 lines
4.6 KiB
JavaScript
161 lines
4.6 KiB
JavaScript
import {
|
|
RECEIVE_QUOTES,
|
|
RECEIVE_BLOCKCHAIN_DATA,
|
|
RECEIVE_EVENTS,
|
|
RECEIVE_ORCHESTRATOR,
|
|
RECEIVE_CURRENT_ORCHESTRATOR,
|
|
CLEAR_ORCHESTRATOR,
|
|
RECEIVE_TICKETS,
|
|
RECEIVE_WINNING_TICKETS,
|
|
SET_ALL_ENS_INFO,
|
|
SET_ALL_ENS_DOMAINS,
|
|
SET_ALL_ORCH_SCORES,
|
|
SET_ALL_ORCH_INFO,
|
|
SET_ALL_DEL_INFO,
|
|
CACHE_ORCHESTRATOR,
|
|
SET_ALL_MONTHLY_STATS,
|
|
SET_ALL_COMMISSIONS,
|
|
SET_ALL_TOTAL_STAKES,
|
|
SET_ALL_UPDATE_EVENTS,
|
|
SET_ALL_REWARD_EVENTS,
|
|
SET_ALL_CLAIM_EVENTS,
|
|
SET_ALL_WITHDRAW_STAKE_EVENTS,
|
|
SET_ALL_WITHDRAW_FEES_EVENTS,
|
|
SET_ALL_TRANSFER_TICKET_EVENTS,
|
|
SET_ALL_REDEEM_TICKET_EVENTS,
|
|
SET_ALL_ACTIVATE_EVENTS,
|
|
SET_ALL_UNBOND_EVENTS,
|
|
SET_ALL_STAKE_EVENTS,
|
|
SET_ALL_ROUNDS,
|
|
SET_ROUND
|
|
} from "../../actions/livepeer";
|
|
|
|
export default (state = {
|
|
quotes: [],
|
|
blockchains: [],
|
|
thisOrchestrator: null,
|
|
selectedOrchestrator: null,
|
|
winningTickets: [],
|
|
orchScores: [],
|
|
monthlyStats: [],
|
|
updateEvents: [],
|
|
rewardEvents: [],
|
|
claimEvents: [],
|
|
withdrawStakeEvents: [],
|
|
withdrawFeesEvents: [],
|
|
transferTicketEvents: [],
|
|
redeemTicketEvents: [],
|
|
activateEvents: [],
|
|
unbondEvents: [],
|
|
stakeEvents: [],
|
|
rounds: []
|
|
}, { type, message }) => {
|
|
Object.freeze(state);
|
|
switch (type) {
|
|
case RECEIVE_QUOTES:
|
|
return { ...state, quotes: message };
|
|
case RECEIVE_BLOCKCHAIN_DATA:
|
|
return { ...state, blockchains: message };
|
|
case RECEIVE_EVENTS:
|
|
return { ...state, events: message };
|
|
case RECEIVE_CURRENT_ORCHESTRATOR:
|
|
return { ...state, thisOrchestrator: message };
|
|
case RECEIVE_ORCHESTRATOR:
|
|
return { ...state, selectedOrchestrator: message };
|
|
case CLEAR_ORCHESTRATOR:
|
|
return { ...state, selectedOrchestrator: null };
|
|
case RECEIVE_TICKETS:
|
|
return { ...state, tickets: message };
|
|
case RECEIVE_WINNING_TICKETS:
|
|
return { ...state, winningTickets: message };
|
|
case SET_ALL_ENS_INFO:
|
|
return { ...state, ensInfoMapping: message };
|
|
case SET_ALL_ENS_DOMAINS:
|
|
return { ...state, ensDomainMapping: message };
|
|
case SET_ALL_ORCH_SCORES:
|
|
return { ...state, orchScores: message };
|
|
case SET_ALL_ORCH_INFO:
|
|
return { ...state, orchInfo: message };
|
|
case CACHE_ORCHESTRATOR:
|
|
let isCached = false;
|
|
// Check to see if it is already cached
|
|
if (state.orchInfo) {
|
|
for (const thisOrch of state.orchInfo) {
|
|
if (thisOrch.id === message.id) {
|
|
isCached = true;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
// If cached, lookup and modify existing entry
|
|
if (isCached) {
|
|
return {
|
|
...state,
|
|
contents: state.orchInfo.map(
|
|
(content) => {
|
|
if (content.id == message.id) {
|
|
return message;
|
|
} else {
|
|
return content;
|
|
}
|
|
}
|
|
)
|
|
}
|
|
} else {
|
|
return {
|
|
...state,
|
|
orchInfo: [...state.orchInfo, message]
|
|
};
|
|
}
|
|
case SET_ALL_DEL_INFO:
|
|
return { ...state, delInfo: message };
|
|
case SET_ALL_MONTHLY_STATS:
|
|
return { ...state, monthlyStats: message };
|
|
case SET_ALL_COMMISSIONS:
|
|
return { ...state, allCommissions: message };
|
|
case SET_ALL_TOTAL_STAKES:
|
|
return { ...state, allTotalStakes: message };
|
|
case SET_ALL_UPDATE_EVENTS:
|
|
return { ...state, updateEvents: message };
|
|
case SET_ALL_REWARD_EVENTS:
|
|
return { ...state, rewardEvents: message };
|
|
case SET_ALL_CLAIM_EVENTS:
|
|
return { ...state, claimEvents: message };
|
|
case SET_ALL_WITHDRAW_STAKE_EVENTS:
|
|
return { ...state, withdrawStakeEvents: message };
|
|
case SET_ALL_WITHDRAW_FEES_EVENTS:
|
|
return { ...state, withdrawFeesEvents: message };
|
|
case SET_ALL_TRANSFER_TICKET_EVENTS:
|
|
return { ...state, transferTicketEvents: message };
|
|
case SET_ALL_REDEEM_TICKET_EVENTS:
|
|
return { ...state, redeemTicketEvents: message };
|
|
case SET_ALL_ACTIVATE_EVENTS:
|
|
return { ...state, activateEvents: message };
|
|
case SET_ALL_UNBOND_EVENTS:
|
|
return { ...state, unbondEvents: message };
|
|
case SET_ALL_STAKE_EVENTS:
|
|
return { ...state, stakeEvents: message };
|
|
case SET_ALL_ROUNDS:
|
|
return { ...state, rounds: message };
|
|
case SET_ROUND:
|
|
// Check to see if it is already cached
|
|
if (state.rounds) {
|
|
return {
|
|
...state,
|
|
contents: state.rounds.map(
|
|
(content) => {
|
|
if (content.number == message.number) {
|
|
return message;
|
|
} else {
|
|
return content;
|
|
}
|
|
}
|
|
)
|
|
}
|
|
}
|
|
return { ...state };
|
|
default:
|
|
return { ...state };
|
|
}
|
|
};
|