Skip to content

Commit e4e24b6

Browse files
authored
Merge pull request #250 from gnosisguild/fix/self-enabled-delay-mod
fix: a Delay mod being enabled on itself broke the app
2 parents 669bf42 + fd75a15 commit e4e24b6

File tree

1 file changed

+13
-6
lines changed

1 file changed

+13
-6
lines changed

packages/app/src/store/modules/helpers.ts

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)