When creating new
eosio::asset objects, what is the maximum precision that can be stored in the asset?
eosio::chain::symbol only accepts decimals under 18 digits, but
eosio::symbol in CDT doesn't check its precision. Of course, during [de]serialization, the inner value of symbol is managed by
eosio::chain::symbol, so error occurs, but if you instantiate
asset in contract, it can have more that 18 digits. I think
eosio::symbol::is_valid needs to check maximum decimal digits to keep consistency with nodeos-side symbol struct. (I sent PR about this issue)