Why is CheckNonZeroSender
a signed extension rather than part of the UncheckedExtrinsic::check()
when checking the payload for a bad proof? What exactly does the non-zero check do? It appears to be checking all the bytes to see if they are zero?
if who.using_encoded(|d| d.iter().all(|x| *x == 0)) {
return Err(TransactionValidityError::Invalid(InvalidTransaction::BadSigner))
}