@@ -4,7 +4,8 @@ import { LessThan } from 'typeorm'
44import { formatUnits } from 'viem'
55
66import * as erc20Abi from '@abi/erc20'
7- import * as originArmAbi from '@abi/origin-arm'
7+ import * as originOsArmAbi from '@abi/origin-arm'
8+ import * as originEtherfiArmAbi from '@abi/origin-etherfi-arm'
89import * as originLidoArmAbi from '@abi/origin-lido-arm'
910import * as originLidoArmCapManagerAbi from '@abi/origin-lido-arm-cap-manager'
1011import { Arm , ArmDailyStat , ArmState , ArmSwap , ArmWithdrawalRequest , TraderateChanged } from '@model'
@@ -30,15 +31,15 @@ export const createOriginARMProcessors = ({
3031 underlyingToken,
3132 capManagerAddress,
3233 marketFrom,
33- lidoArm ,
34+ armType ,
3435} : {
3536 name : string
3637 from : number
3738 armAddress : string
3839 underlyingToken : Currency
3940 capManagerAddress : string
4041 marketFrom ?: number
41- lidoArm : boolean
42+ armType : 'lido' | 'etherfi' | 'os'
4243} ) : Processor [ ] => {
4344 const redeemRequestedFilter = logFilter ( {
4445 address : [ armAddress ] ,
@@ -110,7 +111,7 @@ export const createOriginARMProcessors = ({
110111 if ( entity ) {
111112 armEntity = entity
112113 } else {
113- const armContract = new originArmAbi . Contract ( ctx , ctx . blocks [ 0 ] . header , armAddress )
114+ const armContract = new originOsArmAbi . Contract ( ctx , ctx . blocks [ 0 ] . header , armAddress )
114115 const [ name , symbol , decimals , token0 , token1 ] = await Promise . all ( [
115116 armContract . name ( ) ,
116117 armContract . symbol ( ) ,
@@ -184,8 +185,10 @@ export const createOriginARMProcessors = ({
184185 return armStateEntity
185186 }
186187 const previousState = await getPreviousState ( block )
188+ const armContract = new originOsArmAbi . Contract ( ctx , block . header , armAddress )
187189 const lidoArmContract = new originLidoArmAbi . Contract ( ctx , block . header , armAddress )
188- const armContract = new originArmAbi . Contract ( ctx , block . header , armAddress )
190+ const osArmContract = new originOsArmAbi . Contract ( ctx , block . header , armAddress )
191+ const etherfiArmContract = new originEtherfiArmAbi . Contract ( ctx , block . header , armAddress )
189192 const controllerContract = new originLidoArmCapManagerAbi . Contract ( ctx , block . header , capManagerAddress )
190193 const [
191194 assets0 ,
@@ -198,9 +201,13 @@ export const createOriginARMProcessors = ({
198201 assetsPerShare ,
199202 activeMarket ,
200203 ] = await Promise . all ( [
201- new erc20Abi . Contract ( ctx , block . header , armEntity . token0 ) . balanceOf ( armAddress ) ,
202- new erc20Abi . Contract ( ctx , block . header , armEntity . token1 ) . balanceOf ( armAddress ) ,
203- lidoArm ? lidoArmContract . lidoWithdrawalQueueAmount ( ) : armContract . vaultWithdrawalAmount ( ) ,
204+ armContract . balanceOf ( armAddress ) ,
205+ armContract . balanceOf ( armAddress ) ,
206+ {
207+ lido : lidoArmContract . lidoWithdrawalQueueAmount . bind ( lidoArmContract ) ,
208+ os : osArmContract . vaultWithdrawalAmount . bind ( osArmContract ) ,
209+ etherfi : etherfiArmContract . etherfiWithdrawalQueueAmount . bind ( etherfiArmContract ) ,
210+ } [ armType ] ( ) ,
204211 armContract . feesAccrued ( ) ,
205212 armContract . totalAssets ( ) ,
206213 controllerContract . totalAssetsCap ( ) ,
@@ -212,9 +219,7 @@ export const createOriginARMProcessors = ({
212219 ? await new erc20Abi . Contract ( ctx , block . header , activeMarket ) . balanceOf ( armAddress )
213220 : 0n
214221 const marketAssets =
215- activeMarket && marketBalanceOf > 0n
216- ? await new originArmAbi . Contract ( ctx , block . header , activeMarket ) . previewRedeem ( marketBalanceOf )
217- : 0n
222+ activeMarket && marketBalanceOf > 0n ? await armContract . previewRedeem ( marketBalanceOf ) : 0n
218223 const date = new Date ( block . header . timestamp )
219224 armStateEntity = new ArmState ( {
220225 id : stateId ,
@@ -321,17 +326,17 @@ export const createOriginARMProcessors = ({
321326 data . from . toLowerCase ( ) === armAddress
322327 ? acc - data . value
323328 : data . to . toLowerCase ( ) === armAddress
324- ? acc + data . value
325- : acc ,
329+ ? acc + data . value
330+ : acc ,
326331 0n ,
327332 )
328333 const assets1 = transfers1 . reduce (
329334 ( acc , data ) =>
330335 data . from . toLowerCase ( ) === armAddress
331336 ? acc - data . value
332337 : data . to . toLowerCase ( ) === armAddress
333- ? acc + data . value
334- : acc ,
338+ ? acc + data . value
339+ : acc ,
335340 0n ,
336341 )
337342
0 commit comments