```\n  function afterDepositExecution(\n    bytes32 depositKey,\n    IDeposit.Props memory /* depositProps */,\n    IEvent.Props memory /* eventData */\n  ) external onlyController {\n    GMXTypes.Store memory _store = vault.store();\n\n    if (\n      _store.status == GMXTypes.Status.Deposit &&\n      _store.depositCache.depositKey == depositKey\n    ) {\n      vault.processDeposit();\n    } else if (\n      _store.status == GMXTypes.Status.Rebalance_Add &&\n      _store.rebalanceCache.depositKey == depositKey\n    ) {\n      vault.processRebalanceAdd();\n    } else if (\n      _store.status == GMXTypes.Status.Compound &&\n      _store.compoundCache.depositKey == depositKey\n    ) {\n      vault.processCompound();\n    } else if (\n      _store.status == GMXTypes.Status.Withdraw_Failed &&\n      _store.withdrawCache.depositKey == depositKey\n    ) {\n      vault.processWithdrawFailureLiquidityAdded();\n    } else if (_store.status == GMXTypes.Status.Resume) {\n      // This if block is to catch the Deposit callback after an\n      // emergencyResume() to set the vault status to Open\n      vault.processEmergencyResume();\n    }\n    \n\n@ > // The function does nothing as the conditions are not met\n  }\n```\n