【问题标题】:How to get a struct from view! call in near_sdk_sim?如何从视图中获取结构!调用near_sdk_sim?
【发布时间】:2021-07-20 11:33:20
【问题描述】:

我有以下方法:

pub fn get_product(&self, product_id: U128) -> Product {
        let product_option = self.product_map.get(&product_id);
        match product_option {
            Some(product) => product,
            None => {
                panic!("No products for the id");
            }
        }
    }

产品结构:

#[derive(Default, BorshDeserialize, BorshSerialize)]
#[derive(serde::Serialize, serde::Deserialize)]
pub struct Product {
    pub user_id: u128,
    pub product_details_hash: String, 
}

当我调用 near_sdk_sim 时出现错误

let product:Product = view!(contract.get_product(1.into())).unwrap_json();

错误是:

called `Result::unwrap()` on an `Err` value: Error("EOF while parsing a value", line: 1, column: 0)

如何从视图中获取结构!打电话?

【问题讨论】:

    标签: nearprotocol


    【解决方案1】:

    此类性质的问题更适合作为 issuenear-sdk-rs 供将来参考。

    我对这个问题的猜测是调用恐慌,因此没有反序列化的价值。试试看是否正常。

    let res = view!(contract.get_product(1.into()));
    assert!(res.is_ok());
    

    【讨论】:

      猜你喜欢
      • 2017-06-24
      • 1970-01-01
      • 2013-04-20
      • 2017-07-11
      • 1970-01-01
      • 2023-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多