1

所以我有一个 rust 合约,它有一个任意值的存储映射器。我根据标识符存储它,该标识符是u64.

#[view(getVersion)]
#[storage_mapper("someValue")]
fn get_value(&self, identifier:u64) -> SingleValueMapper<u64>

当我使用 API 或 erdJs 查询时,我总是得到

{
  "statusCode": 400,
  "code": "user error",
  "message": "storage decode error: input too short"
}

我究竟做错了什么?

4

1 回答 1

1

所以我在这里做错的不是合约本身的代码,而是我正在调用一个未存储的值的查询。

我试图达到一个在我的情况下没有设置的值。例如我有这些值

1 -> 100
2 -> 200
3 -> 300
5 -> 500

请注意标识符“4”如何没有存储任何引用。所以我试图在这个视图中查询标识符“4”,因此我得到了一个storage decode error,因为该值的存储空间是空的。

于 2021-10-20T16:14:40.057 回答