I've noticed that since we updated the zephyr vm to the main branch soroban environment, some conversions aren't working as expected.
As an example,
let val: Val = (
Address::from_string(&zephyr_sdk::soroban_sdk::String::from_str(
&env.soroban(),
"GAWL2CH2JH5APO5GJZ5OH6SILW4XUFW7Z72FZDAAUOLK5QZTS363QDDC",
)),
863904_i128,
)
.try_into_val(env.soroban())
.unwrap();
let converted_back = <(Address, i128)>::try_from_val(env.soroban(), &val);
env.log()
.debug(format!("Rountrip result {:?}", converted_back), None);
which is a circular conversion successfully converts the tuple to both val, but fails to be converted back to the tuple:
ZephyrLog { level: Debug, message: "Rountrip result Err(Error(Value, UnexpectedType))", data: None }
I remember this working before updating the zvm's soroban host to p21. My fork's tuple conversions are the same as the main branch's and have been around for two months already https://github.com/heytdep/rs-soroban-env/blob/main/soroban-env-common/src/tuple.rs.
What am I doing wrong here? How can I better debug this?