mirror of
https://github.com/stronk-dev/LivepeerEvents.git
synced 2025-07-05 10:45:10 +02:00
165 lines
3.1 KiB
JavaScript
165 lines
3.1 KiB
JavaScript
import mongoose from 'mongoose';
|
|
|
|
const MonthlyStatSchema = new mongoose.Schema({
|
|
// Static props
|
|
year: {
|
|
type: Number,
|
|
required: true
|
|
},
|
|
month: {
|
|
type: Number,
|
|
required: true
|
|
},
|
|
// Counters based on Smart Contract Events
|
|
// Any TranscoderUpdate event: commission rates are done with thegraph query of current data, no historical data
|
|
// Any TranscoderActivated event
|
|
reactivationCount: {
|
|
type: Number,
|
|
required: false,
|
|
default: 0
|
|
},
|
|
// Bond -> TranscoderActivated event
|
|
activationCount: {
|
|
type: Number,
|
|
required: false,
|
|
default: 0
|
|
},
|
|
activationInitialSum: {
|
|
type: Number,
|
|
required: false,
|
|
default: 0
|
|
},
|
|
// Lone Unbond event
|
|
unbondCount: {
|
|
type: Number,
|
|
required: false,
|
|
default: 0
|
|
},
|
|
unbondStakeSum: {
|
|
type: Number,
|
|
required: false,
|
|
default: 0
|
|
},
|
|
// Any Reward event
|
|
rewardCount: {
|
|
type: Number,
|
|
required: false,
|
|
default: 0
|
|
},
|
|
rewardAmountSum: {
|
|
type: Number,
|
|
required: false,
|
|
default: 0
|
|
},
|
|
// Any EarningsClaimed event
|
|
claimCount: {
|
|
type: Number,
|
|
required: false,
|
|
default: 0
|
|
},
|
|
claimRewardSum: {
|
|
type: Number,
|
|
required: false,
|
|
default: 0
|
|
},
|
|
claimFeeSum: {
|
|
type: Number,
|
|
required: false,
|
|
default: 0
|
|
},
|
|
// Any WithdrawStake event
|
|
withdrawStakeCount: {
|
|
type: Number,
|
|
required: false,
|
|
default: 0
|
|
},
|
|
withdrawStakeAmountSum: {
|
|
type: Number,
|
|
required: false,
|
|
default: 0
|
|
},
|
|
// Any WithdrawFees event
|
|
withdrawFeesCount: {
|
|
type: Number,
|
|
required: false,
|
|
default: 0
|
|
},
|
|
withdrawFeesAmountSum: {
|
|
type: Number,
|
|
required: false,
|
|
default: 0
|
|
},
|
|
// Lone Bond event
|
|
bondCount: {
|
|
type: Number,
|
|
required: false,
|
|
default: 0
|
|
},
|
|
bondStakeSum: {
|
|
type: Number,
|
|
required: false,
|
|
default: 0
|
|
},
|
|
// Unbond->TransferBond->Rebond event
|
|
moveStakeCount: {
|
|
type: Number,
|
|
required: false,
|
|
default: 0
|
|
},
|
|
moveStakeSum: {
|
|
type: Number,
|
|
required: false,
|
|
default: 0
|
|
},
|
|
// Any TransferTicket event
|
|
winningTicketsReceivedCount: {
|
|
type: Number,
|
|
required: false,
|
|
default: 0
|
|
},
|
|
winningTicketsReceivedSum: {
|
|
type: Number,
|
|
required: false,
|
|
default: 0
|
|
},
|
|
winningTicketsReceived: {
|
|
type: [Object],
|
|
required: false,
|
|
default: []
|
|
},
|
|
winningTicketsSent: {
|
|
type: [Object],
|
|
required: false,
|
|
default: []
|
|
},
|
|
// Any RedeemTicket event
|
|
winningTicketsRedeemedCount: {
|
|
type: Number,
|
|
required: false,
|
|
default: 0
|
|
},
|
|
winningTicketsRedeemedSum: {
|
|
type: Number,
|
|
required: false,
|
|
default: 0
|
|
},
|
|
winningTicketsRedeemed: {
|
|
type: [Object],
|
|
required: false,
|
|
default: []
|
|
},
|
|
// Dynamic stats (until the month has passed) containing latest commission, latest totalStake
|
|
orchestratorStats: {
|
|
type: [Object],
|
|
required: false,
|
|
default: null
|
|
},
|
|
testScores: {
|
|
type: Object,
|
|
required: false,
|
|
default: null
|
|
},
|
|
}, { timestamps: false });
|
|
|
|
const MonthlyStat = mongoose.model('MonthlyStat', MonthlyStatSchema);
|
|
export default MonthlyStat; |