Support `require()` messages in Substrate debug output
Call seal_debug_message in assert_failure, to get messages from require() into the debug message buffer.
This information is in the return value on Ethereum. This makes it possible to use try c.foo() catch Error(reason) { .. } and programmatically use the revert() or require() reason string, see https://docs.soliditylang.org/en/v0.8.15/control-structures.html#try-catch
Having said that, I am not sure that it is possible to catch failing functions on substrate.
I see, this might be a bit more involved then.
This is solved since a while ago. Additionally, after #1454 it will be fully usable in try catch.