@@ -2,6 +2,7 @@ import { Address, BigInt, dataSource, log } from "@graphprotocol/graph-ts";
22import {
33 convertToDecimal ,
44 createOrLoadBroadcaster ,
5+ createOrLoadBroadcasterDay ,
56 createOrLoadDay ,
67 createOrLoadProtocol ,
78 createOrLoadRound ,
@@ -32,13 +33,15 @@ import {
3233
3334export function winningTicketRedeemed ( event : WinningTicketRedeemed ) : void {
3435 let round = createOrLoadRound ( getBlockNum ( ) ) ;
35- let day = createOrLoadDay ( event . block . timestamp . toI32 ( ) ) ;
36+ let timestamp = event . block . timestamp . toI32 ( ) ;
37+ let day = createOrLoadDay ( timestamp ) ;
3638 let winningTicketRedeemedEvent = new WinningTicketRedeemedEvent (
3739 makeEventId ( event . transaction . hash , event . logIndex )
3840 ) ;
3941 let protocol = createOrLoadProtocol ( ) ;
4042 let faceValue = convertToDecimal ( event . params . faceValue ) ;
4143 let ethPrice = getEthPriceUsd ( ) ;
44+ let faceValueUSD = faceValue . times ( ethPrice ) ;
4245 let poolId = makePoolId ( event . params . recipient . toHex ( ) , round . id ) ;
4346 let pool = Pool . load ( poolId ) ;
4447
@@ -50,7 +53,7 @@ export function winningTicketRedeemed(event: WinningTicketRedeemed): void {
5053 winningTicketRedeemedEvent . sender = event . params . sender . toHex ( ) ;
5154 winningTicketRedeemedEvent . recipient = event . params . recipient . toHex ( ) ;
5255 winningTicketRedeemedEvent . faceValue = faceValue ;
53- winningTicketRedeemedEvent . faceValueUSD = faceValue . times ( ethPrice ) ;
56+ winningTicketRedeemedEvent . faceValueUSD = faceValueUSD ;
5457 winningTicketRedeemedEvent . winProb = event . params . winProb ;
5558 winningTicketRedeemedEvent . senderNonce = event . params . senderNonce ;
5659 winningTicketRedeemedEvent . recipientRand = event . params . recipientRand ;
@@ -76,6 +79,23 @@ export function winningTicketRedeemed(event: WinningTicketRedeemed): void {
7679 } else {
7780 broadcaster . deposit = broadcaster . deposit . minus ( faceValue ) ;
7881 }
82+
83+ broadcaster . totalVolumeETH = broadcaster . totalVolumeETH . plus ( faceValue ) ;
84+ broadcaster . totalVolumeUSD = broadcaster . totalVolumeUSD . plus ( faceValueUSD ) ;
85+
86+ let broadcasterDay = createOrLoadBroadcasterDay (
87+ timestamp ,
88+ event . params . sender . toHex ( )
89+ ) ;
90+ broadcaster . lastActiveDay = broadcasterDay . date ;
91+ broadcasterDay . volumeETH = broadcasterDay . volumeETH . plus ( faceValue ) ;
92+ broadcasterDay . volumeUSD = broadcasterDay . volumeUSD . plus ( faceValueUSD ) ;
93+ broadcasterDay . save ( ) ;
94+ let broadcasterDays = broadcaster . broadcasterDays ;
95+ if ( ! broadcasterDays . includes ( broadcasterDay . id ) ) {
96+ broadcasterDays . unshift ( broadcasterDay . id ) ;
97+ broadcaster . broadcasterDays = broadcasterDays ;
98+ }
7999 broadcaster . save ( ) ;
80100
81101 // Update transcoder's fee volume
@@ -84,15 +104,11 @@ export function winningTicketRedeemed(event: WinningTicketRedeemed): void {
84104 event . block . timestamp . toI32 ( )
85105 ) ;
86106 transcoder . totalVolumeETH = transcoder . totalVolumeETH . plus ( faceValue ) ;
87- transcoder . totalVolumeUSD = transcoder . totalVolumeUSD . plus (
88- faceValue . times ( ethPrice )
89- ) ;
107+ transcoder . totalVolumeUSD = transcoder . totalVolumeUSD . plus ( faceValueUSD ) ;
90108
91109 // Update total protocol fee volume
92110 protocol . totalVolumeETH = protocol . totalVolumeETH . plus ( faceValue ) ;
93- protocol . totalVolumeUSD = protocol . totalVolumeUSD . plus (
94- faceValue . times ( ethPrice )
95- ) ;
111+ protocol . totalVolumeUSD = protocol . totalVolumeUSD . plus ( faceValueUSD ) ;
96112
97113 protocol . winningTicketCount = protocol . winningTicketCount + 1 ;
98114 protocol . save ( ) ;
@@ -107,17 +123,15 @@ export function winningTicketRedeemed(event: WinningTicketRedeemed): void {
107123 day . totalActiveStake = protocol . totalActiveStake ;
108124 day . participationRate = protocol . participationRate ;
109125 day . volumeETH = day . volumeETH . plus ( faceValue ) ;
110- day . volumeUSD = day . volumeUSD . plus ( faceValue . times ( ethPrice ) ) ;
126+ day . volumeUSD = day . volumeUSD . plus ( faceValueUSD ) ;
111127 day . save ( ) ;
112128
113129 let transcoderDay = createOrLoadTranscoderDay (
114- event . block . timestamp . toI32 ( ) ,
130+ timestamp ,
115131 event . params . recipient . toHex ( )
116132 ) ;
117133 transcoderDay . volumeETH = transcoderDay . volumeETH . plus ( faceValue ) ;
118- transcoderDay . volumeUSD = transcoderDay . volumeUSD . plus (
119- faceValue . times ( ethPrice )
120- ) ;
134+ transcoderDay . volumeUSD = transcoderDay . volumeUSD . plus ( faceValueUSD ) ;
121135 transcoderDay . save ( ) ;
122136
123137 // Manually manage the array of transcoder days (add newest to the beginning of the list)
@@ -130,7 +144,7 @@ export function winningTicketRedeemed(event: WinningTicketRedeemed): void {
130144
131145 // Update fee volume for this round
132146 round . volumeETH = round . volumeETH . plus ( faceValue ) ;
133- round . volumeUSD = round . volumeUSD . plus ( faceValue . times ( ethPrice ) ) ;
147+ round . volumeUSD = round . volumeUSD . plus ( faceValueUSD ) ;
134148 round . save ( ) ;
135149}
136150
0 commit comments