marketmakingengineconfigurationbranch.sol has 2 functions
unpauseMarket
pauseMarket
function unpauseMarket(uint128 marketId) external onlyOwner returns (bool success) {
success = LiveMarkets.load().addMarket(marketId);
if (success) emit LogMarketUnpaused(marketId);
}
function pauseMarket(uint128 marketId) external onlyOwner returns (bool success) {
success = LiveMarkets.load().removeMarket(marketId);
if (success) emit LogMarketPaused(marketId);
}
both of them exist in 2 different contracts:
while perpsengineconfiguration checks if the calls were successful
function checkMarketIsEnabled(Data storage self, uint128 marketId) internal view {
if (!self.enabledMarketsIds.contains(marketId)) {
revert Errors.PerpMarketDisabled(marketId);
}
}
function addMarket(Data storage self, uint128 marketId) internal {
bool added = self.enabledMarketsIds.add(uint256(marketId));
if (!added) {
revert Errors.PerpMarketAlreadyEnabled(marketId);
}
}
livemarkets does not
function addMarket(Data storage self, uint128 marketId) internal returns (bool) {
return self.liveMarketIds.add(uint256(marketId));
}
function removeMarket(Data storage self, uint128 marketId) internal returns (bool) {
return self.liveMarketIds.remove(uint256(marketId));
}
which indicates that there’s a possibility of silent fail. Necessary checks should be added to functions in livemarkets also