@@ -45,7 +45,14 @@ export const sanitizeModule = async (
4545) : Promise < Module > => {
4646 const module = await getModuleData ( provider , sdk , chainId , moduleAddress )
4747 if ( module . type === ModuleType . DELAY ) {
48- return await fetchDelayModule ( provider , moduleAddress , sdk , chainId , parentModule )
48+ return await fetchDelayModule (
49+ provider ,
50+ moduleAddress ,
51+ sdk ,
52+ chainId ,
53+ parentModule ,
54+ parentModulesList ,
55+ )
4956 }
5057
5158 const subModules = await fetchSubModules (
@@ -76,6 +83,7 @@ export async function fetchDelayModule(
7683 sdk : SafeAppsSDK ,
7784 chainId : NETWORK ,
7885 parentModule : string ,
86+ parentModulesList : string [ ] = [ address ] ,
7987) : Promise < DelayModule | Module > {
8088 const delayModule = getModuleInstance ( KnownContracts . DELAY , address , provider )
8189 const abi = delayModule . interface . fragments . map ( ( frag ) => frag )
@@ -88,16 +96,16 @@ export async function fetchDelayModule(
8896 const txCooldown = moduleContract . txCooldown ( )
8997 const txExpiration = moduleContract . txExpiration ( )
9098 const modules = moduleContract . getModulesPaginated ( AddressOne , 50 )
91-
9299 let [ cooldown , expiration , [ subModules ] ] = ( await ethCallProvider . all ( [
93100 txCooldown ,
94101 txExpiration ,
95102 modules ,
96103 ] ) ) as any
97104
98105 if ( subModules ) {
99- const requests = ( subModules as string [ ] ) . map (
100- async ( moduleAddress , index ) : Promise < Module > => {
106+ const requests = ( subModules as string [ ] )
107+ . filter ( ( moduleAddress ) => ! parentModulesList . includes ( moduleAddress ) )
108+ . map ( async ( moduleAddress , index ) : Promise < Module > => {
101109 const subModule = await sanitizeModule (
102110 provider ,
103111 moduleAddress ,
@@ -110,8 +118,7 @@ export async function fetchDelayModule(
110118 id : `${ address } _${ moduleAddress } _${ index } ` ,
111119 parentModule : address ,
112120 }
113- } ,
114- )
121+ } )
115122 requests . reverse ( )
116123 subModules = await Promise . all ( requests )
117124 }
0 commit comments