```\n    function reclaimContract(Order calldata order) public nonReentrant {\n        bytes32 orderHash = hashOrder(order);\n\n        // ContractId\n        uint contractId = uint(orderHash);\n\n        address bull = bulls[contractId];\n\n        // Check that the contract is expired\n        require(block.timestamp > order.expiry, "NOT_EXPIRED_CONTRACT");\n\n        // Check that the contract is not settled\n        require(!settledContracts[contractId], "SETTLED_CONTRACT");\n\n        // Check that the contract is not reclaimed\n        require(!reclaimedContracts[contractId], "RECLAIMED_CONTRACT");\n\n        uint bullAssetAmount = order.premium + order.collateral;\n        if (bullAssetAmount > 0) {\n            // Transfer payment tokens to the Bull\n            IERC20(order.asset).safeTransfer(bull, bullAssetAmount);\n        }\n\n        reclaimedContracts[contractId] = true;\n\n        emit ReclaimedContract(orderHash, order);\n    }\n```\n