From 6fba12ec1fc2a170300ff3f51e055c9abe3ed808 Mon Sep 17 00:00:00 2001 From: Marco van Dijk Date: Sat, 23 Apr 2022 16:36:26 +0200 Subject: [PATCH] Now with commission in ticket viewer and some prework for storing round numbers --- backend/src/models/ActivateEvent.js | 4 +++ backend/src/models/ClaimEvent.js | 4 +++ backend/src/models/RedeemEvent.js | 4 +++ backend/src/models/RewardEvent.js | 4 +++ backend/src/models/StakeEvent.js | 4 +++ backend/src/models/TransferEvent.js | 4 +++ backend/src/models/UnbondEvent.js | 4 +++ backend/src/models/UpdateEvent.js | 4 +++ backend/src/models/WithdrawFeesEvent.js | 4 +++ backend/src/models/WithdrawStakeEvent.js | 4 +++ backend/src/models/block.js | 4 +++ src/components/eventButton.js | 42 ++++++++++++++++++++++-- src/components/eventViewer.js | 7 ++-- src/pages/livepeer.js | 1 + 14 files changed, 88 insertions(+), 6 deletions(-) diff --git a/backend/src/models/ActivateEvent.js b/backend/src/models/ActivateEvent.js index 0f69553..3675586 100644 --- a/backend/src/models/ActivateEvent.js +++ b/backend/src/models/ActivateEvent.js @@ -24,6 +24,10 @@ const ActivateEventSchema = new mongoose.Schema({ blockTime: { type: Number, required: true + }, + blockRound: { + type: Number, + required: false } }, { timestamps: false }); diff --git a/backend/src/models/ClaimEvent.js b/backend/src/models/ClaimEvent.js index 4bf5409..d4b88b1 100644 --- a/backend/src/models/ClaimEvent.js +++ b/backend/src/models/ClaimEvent.js @@ -32,6 +32,10 @@ const ClaimEventSchema = new mongoose.Schema({ blockTime: { type: Number, required: true + }, + blockRound: { + type: Number, + required: false } }, { timestamps: false }); diff --git a/backend/src/models/RedeemEvent.js b/backend/src/models/RedeemEvent.js index d313faf..e7ef645 100644 --- a/backend/src/models/RedeemEvent.js +++ b/backend/src/models/RedeemEvent.js @@ -20,6 +20,10 @@ const RedeemEventSchema = new mongoose.Schema({ blockTime: { type: Number, required: true + }, + blockRound: { + type: Number, + required: false } }, { timestamps: false }); diff --git a/backend/src/models/RewardEvent.js b/backend/src/models/RewardEvent.js index 7c1d23e..eb78d2d 100644 --- a/backend/src/models/RewardEvent.js +++ b/backend/src/models/RewardEvent.js @@ -20,6 +20,10 @@ const RewardEventSchema = new mongoose.Schema({ blockTime: { type: Number, required: true + }, + blockRound: { + type: Number, + required: false } }, { timestamps: false }); diff --git a/backend/src/models/StakeEvent.js b/backend/src/models/StakeEvent.js index a3be915..1d24083 100644 --- a/backend/src/models/StakeEvent.js +++ b/backend/src/models/StakeEvent.js @@ -28,6 +28,10 @@ const StakeEventSchema = new mongoose.Schema({ blockTime: { type: Number, required: true + }, + blockRound: { + type: Number, + required: false } }, { timestamps: false }); diff --git a/backend/src/models/TransferEvent.js b/backend/src/models/TransferEvent.js index 19f4526..4372a1c 100644 --- a/backend/src/models/TransferEvent.js +++ b/backend/src/models/TransferEvent.js @@ -24,6 +24,10 @@ const TransferEventSchema = new mongoose.Schema({ blockTime: { type: Number, required: true + }, + blockRound: { + type: Number, + required: false } }, { timestamps: false }); diff --git a/backend/src/models/UnbondEvent.js b/backend/src/models/UnbondEvent.js index c972d39..780c19a 100644 --- a/backend/src/models/UnbondEvent.js +++ b/backend/src/models/UnbondEvent.js @@ -28,6 +28,10 @@ const UnbondEventSchema = new mongoose.Schema({ blockTime: { type: Number, required: true + }, + blockRound: { + type: Number, + required: false } }, { timestamps: false }); diff --git a/backend/src/models/UpdateEvent.js b/backend/src/models/UpdateEvent.js index 4f1ca72..2f00fcb 100644 --- a/backend/src/models/UpdateEvent.js +++ b/backend/src/models/UpdateEvent.js @@ -24,6 +24,10 @@ const UpdateEventSchema = new mongoose.Schema({ blockTime: { type: Number, required: true + }, + blockRound: { + type: Number, + required: false } }, { timestamps: false }); diff --git a/backend/src/models/WithdrawFeesEvent.js b/backend/src/models/WithdrawFeesEvent.js index a58e14c..4f5ded0 100644 --- a/backend/src/models/WithdrawFeesEvent.js +++ b/backend/src/models/WithdrawFeesEvent.js @@ -20,6 +20,10 @@ const WithdrawFeesEventSchema = new mongoose.Schema({ blockTime: { type: Number, required: true + }, + blockRound: { + type: Number, + required: false } }, { timestamps: false }); diff --git a/backend/src/models/WithdrawStakeEvent.js b/backend/src/models/WithdrawStakeEvent.js index 22b6b27..5ad9e8e 100644 --- a/backend/src/models/WithdrawStakeEvent.js +++ b/backend/src/models/WithdrawStakeEvent.js @@ -24,6 +24,10 @@ const WithdrawStakeEventSchema = new mongoose.Schema({ blockTime: { type: Number, required: true + }, + blockRound: { + type: Number, + required: false } }, { timestamps: false }); diff --git a/backend/src/models/block.js b/backend/src/models/block.js index 8e728d3..ef843fc 100644 --- a/backend/src/models/block.js +++ b/backend/src/models/block.js @@ -8,6 +8,10 @@ const BlockSchema = new mongoose.Schema({ blockTime: { type: Number, required: true + }, + blockRound: { + type: Number, + required: false } }, { timestamps: false }); diff --git a/src/components/eventButton.js b/src/components/eventButton.js index 21cf5e8..a1cd191 100644 --- a/src/components/eventButton.js +++ b/src/components/eventButton.js @@ -31,9 +31,28 @@ const EventButton = (obj) => { ]} /> eventColour = updateColour; } 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; eventDescription = eventColour = rewardColour; } else if (obj.type == "claim") { @@ -86,9 +105,28 @@ const EventButton = (obj) => { ]} /> eventColour = ticketTransferColour; } 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; eventDescription = eventColour = ticketRedeemColour; } else if (obj.type == "stake") { diff --git a/src/components/eventViewer.js b/src/components/eventViewer.js index 40c05d6..1ecfa76 100644 --- a/src/components/eventViewer.js +++ b/src/components/eventViewer.js @@ -98,10 +98,6 @@ const EventViewer = (obj) => { unbondEventsIdx = -1; } if (!delegatorRewardActivated) { - filtered += rewardEventsIdx + 1; - rewardEventsIdx = -1; - } - if (!rewardActivated) { filtered += claimEventsIdx + 1; claimEventsIdx = -1; } @@ -426,7 +422,9 @@ const EventViewer = (obj) => { seed={thisEvent.transactionHash + unfiltered} eventObj={thisEvent} type={latestType} + time={thisEvent.blockTime} setSearchTerm={obj.setSearchTerm} + monthlyStats={obj.monthlyStats} />); } else { prevBlock = thisEvent.blockNumber; @@ -438,6 +436,7 @@ const EventViewer = (obj) => { isFirstOfBlock={prevBlock} time={thisEvent.blockTime} setSearchTerm={obj.setSearchTerm} + monthlyStats={obj.monthlyStats} />); } } diff --git a/src/pages/livepeer.js b/src/pages/livepeer.js index 0a4f8fe..3d01bfb 100644 --- a/src/pages/livepeer.js +++ b/src/pages/livepeer.js @@ -112,6 +112,7 @@ const Livepeer = (obj) => { activateEvents={livepeer.activateEvents} unbondEvents={livepeer.unbondEvents} stakeEvents={livepeer.stakeEvents} + monthlyStats={livepeer.monthlyStats} />