I really like the changes that were made compared to the framework in https://github.com/cowprotocol/conditional-smart-orders as they allow more effective creation of smart orders and also make it easier to leave the Safe functional!
One decision I find difficult however, for general purpose smart orders is to require fixed length signatures. There are definitely use cases (e.g. dynamic price checkers for milkman style orders) where the same order type may have different lengths signatures.
Maybe we can define a magic value that indicates "arbitrary length" to avoid failing this check:
|
if (_signature.length == CONDITIONAL_ORDER_BYTES_LENGTH() && verifyTrade(_dataHash, _signature)) { |