pub fn contract_call<T, TArgs>(
    contract_id: b256,
    method_name: str,
    args: TArgs,
    coins: u64,
    asset_id: b256,
    gas: u64,
) -> T
where
    T: AbiDecode,
    TArgs: AbiEncode,