Optimisation: transactional opt out
Since https://github.com/paritytech/substrate/issues/10806, extrinsic spawn a transactional layer by default which can be opted-out with #[without_transactional]
. Most of our code follow the "verify first, write last" practice this issue mentions anyway (i.e. check_*
functions doing nothing returning Result
and infaillible do_*
functions), so it can easily benefit from this optimisation.
It's not necessary but it's possible, and worth noting if we want to avoid this pattern for simplicity.