【问题标题】:Why do I get "storage decode error: input too short" error?为什么会出现“存储解码错误:输入太短”错误?
【发布时间】:2021-10-20 16:14:40
【问题描述】:

所以我有一个 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"
}

我做错了什么?

【问题讨论】:

    标签: elrond


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-19
      • 2014-05-18
      • 2017-11-13
      相关资源
      最近更新 更多