fc
fc copied to clipboard
Allow conversion from variant_object to std::pair
FC_REFLECT uses from_variant/to_variant pairs, so for extensions_type of eosio::chain
(an alias of std::vector<std::pair<uint16_t, std::vector<char>>>
) will try calling fc::from_variant(const fc::variant& v, std::pair<A,B> p)
.
However, eosio.cdt will generate ABI for std::pair like pair_A_B with two fields, first and second. eosio::chain::abi_serializer
will accept object with two keys, "first" and "second", but fc::from_variant will require fc::variants (an alias of std::vector<fc::variant>
) for std::pair
.
This PR makes from_variant try parsing variant to variant_object when failing to parse variant to variants for std::pair
.