Now with commission in ticket viewer and some prework for storing round numbers

This commit is contained in:
Marco van Dijk 2022-04-23 16:36:26 +02:00
parent 673ec3265e
commit 6fba12ec1f
14 changed files with 88 additions and 6 deletions

View File

@ -24,6 +24,10 @@ const ActivateEventSchema = new mongoose.Schema({
blockTime: { blockTime: {
type: Number, type: Number,
required: true required: true
},
blockRound: {
type: Number,
required: false
} }
}, { timestamps: false }); }, { timestamps: false });

View File

@ -32,6 +32,10 @@ const ClaimEventSchema = new mongoose.Schema({
blockTime: { blockTime: {
type: Number, type: Number,
required: true required: true
},
blockRound: {
type: Number,
required: false
} }
}, { timestamps: false }); }, { timestamps: false });

View File

@ -20,6 +20,10 @@ const RedeemEventSchema = new mongoose.Schema({
blockTime: { blockTime: {
type: Number, type: Number,
required: true required: true
},
blockRound: {
type: Number,
required: false
} }
}, { timestamps: false }); }, { timestamps: false });

View File

@ -20,6 +20,10 @@ const RewardEventSchema = new mongoose.Schema({
blockTime: { blockTime: {
type: Number, type: Number,
required: true required: true
},
blockRound: {
type: Number,
required: false
} }
}, { timestamps: false }); }, { timestamps: false });

View File

@ -28,6 +28,10 @@ const StakeEventSchema = new mongoose.Schema({
blockTime: { blockTime: {
type: Number, type: Number,
required: true required: true
},
blockRound: {
type: Number,
required: false
} }
}, { timestamps: false }); }, { timestamps: false });

View File

@ -24,6 +24,10 @@ const TransferEventSchema = new mongoose.Schema({
blockTime: { blockTime: {
type: Number, type: Number,
required: true required: true
},
blockRound: {
type: Number,
required: false
} }
}, { timestamps: false }); }, { timestamps: false });

View File

@ -28,6 +28,10 @@ const UnbondEventSchema = new mongoose.Schema({
blockTime: { blockTime: {
type: Number, type: Number,
required: true required: true
},
blockRound: {
type: Number,
required: false
} }
}, { timestamps: false }); }, { timestamps: false });

View File

@ -24,6 +24,10 @@ const UpdateEventSchema = new mongoose.Schema({
blockTime: { blockTime: {
type: Number, type: Number,
required: true required: true
},
blockRound: {
type: Number,
required: false
} }
}, { timestamps: false }); }, { timestamps: false });

View File

@ -20,6 +20,10 @@ const WithdrawFeesEventSchema = new mongoose.Schema({
blockTime: { blockTime: {
type: Number, type: Number,
required: true required: true
},
blockRound: {
type: Number,
required: false
} }
}, { timestamps: false }); }, { timestamps: false });

View File

@ -24,6 +24,10 @@ const WithdrawStakeEventSchema = new mongoose.Schema({
blockTime: { blockTime: {
type: Number, type: Number,
required: true required: true
},
blockRound: {
type: Number,
required: false
} }
}, { timestamps: false }); }, { timestamps: false });

View File

@ -8,6 +8,10 @@ const BlockSchema = new mongoose.Schema({
blockTime: { blockTime: {
type: Number, type: Number,
required: true required: true
},
blockRound: {
type: Number,
required: false
} }
}, { timestamps: false }); }, { timestamps: false });

View File

@ -31,9 +31,28 @@ const EventButton = (obj) => {
]} /> ]} />
eventColour = updateColour; eventColour = updateColour;
} else if (obj.type == "reward") { } else if (obj.type == "reward") {
// Determine reward cut
let appendix = "";
if (obj.monthlyStats) {
var dateObj = new Date(0);
dateObj.setUTCSeconds(obj.time);
const thisYear = dateObj.getFullYear();
const thisMonth = dateObj.getMonth();
for (const timeObj of obj.monthlyStats) {
if (thisYear == timeObj.year && thisMonth == timeObj.month) {
if (timeObj.latestCommission) {
for (const commissionObj of timeObj.latestCommission) {
if (commissionObj.address == obj.eventObj.address) {
appendix += ", keeping " + (obj.eventObj.amount * (commissionObj.rewardCommission / 100)).toFixed(4) + " LPT as commission";
}
}
}
}
}
}
eventCaller = obj.eventObj.address; eventCaller = obj.eventObj.address;
eventDescription = <Ticket seed={obj.seed + "-desc-"} icon={"🏦"} subtext={"called reward"} descriptions={[ eventDescription = <Ticket seed={obj.seed + "-desc-"} icon={"🏦"} subtext={"called reward"} descriptions={[
"+" + obj.eventObj.amount.toFixed(2) + " LPT" + (Math.floor(obj.eventObj.amount) == 69 ? "... Nice!" : "") "+" + obj.eventObj.amount.toFixed(2) + " LPT" + appendix
]} /> ]} />
eventColour = rewardColour; eventColour = rewardColour;
} else if (obj.type == "claim") { } else if (obj.type == "claim") {
@ -86,9 +105,28 @@ const EventButton = (obj) => {
]} /> ]} />
eventColour = ticketTransferColour; eventColour = ticketTransferColour;
} else if (obj.type == "redeemTicket") { } else if (obj.type == "redeemTicket") {
// Determine fee cut
let appendix = "";
if (obj.monthlyStats) {
var dateObj = new Date(0);
dateObj.setUTCSeconds(obj.time);
const thisYear = dateObj.getFullYear();
const thisMonth = dateObj.getMonth();
for (const timeObj of obj.monthlyStats) {
if (thisYear == timeObj.year && thisMonth == timeObj.month) {
if (timeObj.latestCommission) {
for (const commissionObj of timeObj.latestCommission) {
if (commissionObj.address == obj.eventObj.address) {
appendix += ", keeping " + (obj.eventObj.amount * (commissionObj.feeCommission / 100)).toFixed(4) + " Eth as commission";
}
}
}
}
}
}
eventCaller = obj.eventObj.address; eventCaller = obj.eventObj.address;
eventDescription = <Ticket seed={obj.seed + "-desc-"} icon={"🎟️"} subtext={"redeemed winning ticket"} descriptions={[ eventDescription = <Ticket seed={obj.seed + "-desc-"} icon={"🎟️"} subtext={"redeemed winning ticket"} descriptions={[
"+" + obj.eventObj.amount.toFixed(4) + " Eth" "+" + obj.eventObj.amount.toFixed(4) + " Eth" + appendix
]} /> ]} />
eventColour = ticketRedeemColour; eventColour = ticketRedeemColour;
} else if (obj.type == "stake") { } else if (obj.type == "stake") {

View File

@ -98,10 +98,6 @@ const EventViewer = (obj) => {
unbondEventsIdx = -1; unbondEventsIdx = -1;
} }
if (!delegatorRewardActivated) { if (!delegatorRewardActivated) {
filtered += rewardEventsIdx + 1;
rewardEventsIdx = -1;
}
if (!rewardActivated) {
filtered += claimEventsIdx + 1; filtered += claimEventsIdx + 1;
claimEventsIdx = -1; claimEventsIdx = -1;
} }
@ -426,7 +422,9 @@ const EventViewer = (obj) => {
seed={thisEvent.transactionHash + unfiltered} seed={thisEvent.transactionHash + unfiltered}
eventObj={thisEvent} eventObj={thisEvent}
type={latestType} type={latestType}
time={thisEvent.blockTime}
setSearchTerm={obj.setSearchTerm} setSearchTerm={obj.setSearchTerm}
monthlyStats={obj.monthlyStats}
/>); />);
} else { } else {
prevBlock = thisEvent.blockNumber; prevBlock = thisEvent.blockNumber;
@ -438,6 +436,7 @@ const EventViewer = (obj) => {
isFirstOfBlock={prevBlock} isFirstOfBlock={prevBlock}
time={thisEvent.blockTime} time={thisEvent.blockTime}
setSearchTerm={obj.setSearchTerm} setSearchTerm={obj.setSearchTerm}
monthlyStats={obj.monthlyStats}
/>); />);
} }
} }

View File

@ -112,6 +112,7 @@ const Livepeer = (obj) => {
activateEvents={livepeer.activateEvents} activateEvents={livepeer.activateEvents}
unbondEvents={livepeer.unbondEvents} unbondEvents={livepeer.unbondEvents}
stakeEvents={livepeer.stakeEvents} stakeEvents={livepeer.stakeEvents}
monthlyStats={livepeer.monthlyStats}
/> />
</div> </div>
</div> </div>