@@ -178,50 +178,6 @@ export const createOriginARMProcessors = ({
178178 state . totalAssets - state . totalDeposits + state . totalWithdrawals
179179
180180 for ( const block of ctx . blocks ) {
181- if ( tracker ( ctx , block ) ) {
182- // ArmState
183- const state = await getCurrentState ( block )
184- const rateUSD = await ensureExchangeRate ( ctx , block , 'ETH' , 'USD' )
185-
186- // ArmDailyStat
187- const date = new Date ( block . header . timestamp )
188- const dateStr = date . toISOString ( ) . slice ( 0 , 10 )
189- const previousDateStr = dayjs ( date ) . subtract ( 1 , 'day' ) . toISOString ( ) . slice ( 0 , 10 )
190- const currentDayId = `${ ctx . chain . id } :${ dateStr } :${ armAddress } `
191- const previousDayId = `${ ctx . chain . id } :${ previousDateStr } :${ armAddress } `
192- const previousDailyStat =
193- dailyStatsMap . get ( previousDayId ) ?? ( await ctx . store . get ( ArmDailyStat , previousDayId ) )
194- const startOfDay = dayjs ( date ) . startOf ( 'day' ) . toDate ( )
195- const endOfDay = dayjs ( date ) . endOf ( 'day' ) . toDate ( )
196- const armDayApy = calculateAPY (
197- startOfDay ,
198- endOfDay ,
199- previousDailyStat ?. assetsPerShare ?? 10n ** 18n ,
200- state . assetsPerShare ,
201- )
202-
203- const armDailyStatEntity = new ArmDailyStat ( {
204- id : currentDayId ,
205- chainId : ctx . chain . id ,
206- timestamp : new Date ( block . header . timestamp ) ,
207- blockNumber : block . header . height ,
208- date : dateStr ,
209- address : armAddress ,
210- assets0 : state . assets0 ,
211- assets1 : state . assets1 ,
212- outstandingAssets1 : state . outstandingAssets1 ,
213- totalAssets : state . totalAssets ,
214- totalAssetsCap : state . totalAssetsCap ,
215- totalSupply : state . totalSupply ,
216- assetsPerShare : state . assetsPerShare ,
217- apr : armDayApy . apr ,
218- apy : armDayApy . apy ,
219- fees : state . totalFees - ( previousDailyStat ?. fees ?? 0n ) ,
220- yield : state . totalYield - ( previousDailyStat ?. yield ?? 0n ) ,
221- rateUSD : + formatUnits ( rateUSD ?. rate ?? 0n , 8 ) ,
222- } )
223- dailyStatsMap . set ( currentDayId , armDailyStatEntity )
224- }
225181 for ( const log of block . logs ) {
226182 // ArmWithdrawalRequest
227183 if ( redeemRequestedFilter . matches ( log ) ) {
@@ -269,7 +225,52 @@ export const createOriginARMProcessors = ({
269225 state . totalFees += event . fee
270226 }
271227 }
228+ if ( tracker ( ctx , block ) ) {
229+ // ArmState
230+ const state = await getCurrentState ( block )
231+ const rateUSD = await ensureExchangeRate ( ctx , block , 'ETH' , 'USD' )
232+
233+ // ArmDailyStat
234+ const date = new Date ( block . header . timestamp )
235+ const dateStr = date . toISOString ( ) . slice ( 0 , 10 )
236+ const previousDateStr = dayjs ( date ) . subtract ( 1 , 'day' ) . toISOString ( ) . slice ( 0 , 10 )
237+ const currentDayId = `${ ctx . chain . id } :${ dateStr } :${ armAddress } `
238+ const previousDayId = `${ ctx . chain . id } :${ previousDateStr } :${ armAddress } `
239+ const previousDailyStat =
240+ dailyStatsMap . get ( previousDayId ) ?? ( await ctx . store . get ( ArmDailyStat , previousDayId ) )
241+ const startOfDay = dayjs ( date ) . startOf ( 'day' ) . toDate ( )
242+ const endOfDay = dayjs ( date ) . endOf ( 'day' ) . toDate ( )
243+ const armDayApy = calculateAPY (
244+ startOfDay ,
245+ endOfDay ,
246+ previousDailyStat ?. assetsPerShare ?? 10n ** 18n ,
247+ state . assetsPerShare ,
248+ )
249+
250+ const armDailyStatEntity = new ArmDailyStat ( {
251+ id : currentDayId ,
252+ chainId : ctx . chain . id ,
253+ timestamp : new Date ( block . header . timestamp ) ,
254+ blockNumber : block . header . height ,
255+ date : dateStr ,
256+ address : armAddress ,
257+ assets0 : state . assets0 ,
258+ assets1 : state . assets1 ,
259+ outstandingAssets1 : state . outstandingAssets1 ,
260+ totalAssets : state . totalAssets ,
261+ totalAssetsCap : state . totalAssetsCap ,
262+ totalSupply : state . totalSupply ,
263+ assetsPerShare : state . assetsPerShare ,
264+ apr : armDayApy . apr ,
265+ apy : armDayApy . apy ,
266+ fees : state . totalFees - ( previousDailyStat ?. fees ?? 0n ) ,
267+ yield : state . totalYield - ( previousDailyStat ?. yield ?? 0n ) ,
268+ rateUSD : + formatUnits ( rateUSD ?. rate ?? 0n , 8 ) ,
269+ } )
270+ dailyStatsMap . set ( currentDayId , armDailyStatEntity )
271+ }
272272 }
273+
273274 await ctx . store . insert ( states )
274275 await ctx . store . upsert ( [ ...dailyStatsMap . values ( ) ] )
275276 await ctx . store . upsert ( [ ...redemptionMap . values ( ) ] )
0 commit comments