pub async fn view_async<S, A, V, E, F>(
    s: &OptionalCell<S>,
    interaction: JsValue,
    view_contract_method: F
) -> JsValuewhere
    S: Clone,
    A: DeserializeOwned + Debug,
    V: Serialize + Debug,
    E: Serialize + Debug,
    F: for<'a> BorrowingFn<'a, S, A, ViewResult<V, E>>,