Assessment reports>Tradoor>Discussion>Unused isPending flag on perpetual orders

Unused isPending flag on perpetual orders

Note that the isPending flag, which is stored in perpOrders, is unused. We recommend removing it to simplify the code and save gas costs. For example, in the following handler, make these suggested changes:

receive(msg: ExecutePerpOrder) {
    let ctx: Context = context();

    require(self.executors.exists(ctx.sender), "invalid sender");
    let orderOpt: PerpOrder? = self.perpOrders.get(msg.orderId);
    require(orderOpt != null, "order not exist");
    let order: PerpOrder = orderOpt!!;

    require(ctx.value >= self.executePerpOrderGas + self.transferJettonGas, "gas not enough");
-    require(!order.isPending, "order is pending");

-    order.isPending = true;
-    self.perpOrders.set(msg.orderId, order);

    if (!(order.opType == OP_TYPE_PERP_INCREASE_MARKET || order.opType == OP_TYPE_PERP_DECREASE_MARKET)){
        require(order.triggerAbove ? (msg.price >= order.triggerPrice) : (msg.price <= order.triggerPrice), "not reach trigger price");
    }
    let extraGas: Int = 0;
    let increase: Bool = order.opType == OP_TYPE_PERP_INCREASE_MARKET || order.opType == OP_TYPE_PERP_INCREASE_LIMIT;
    // [...]
Zellic © 2025Back to top ↑