TokenSymbol::try_from(Felt::ZERO) should fail, but it does not as it only checks against the maximum value.
I guess it needs a
const MIN_ENCODED_VALUE: u64 = Self::from_static("A").0.as_int();
and an additional check.
As a separate issue, I'm also surprised that TokenSymbol::to_string is fallible -- surely it should always succeed?