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:
Yes, I certainly agree the fixed length isn't optimal, and that's why for the next phase I was very much looking at the magic value approach, and generalising this for Safe.
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:
https://github.com/rndlabs/cowswap-twap-orders/blob/864546a57fdd3886a3dd80fbb0b05c71195754cf/src/CoWFallbackHandler.sol#L66